Re: JDBC try/catch Pitfall ***MUST READ***
try { if(rs != null) rs.close(); if(ps != null) ps.close(); if(conn != null) conn.close(); } catch(SQLException sqle) { sqle.printStackTrace(); } You do not make it clear, but if either rs.close() or ps.close() has an exception, then conn.close() will never be called. Could that be your issue? In a finally, I usually try/catch each of those closes individually to avoid just such a problem. tim.
Re: JDBC try/catch Pitfall ***MUST READ***
To be honest, having implemented compilers and interpretters, the for and while loop examples that they provide seem entirely logical. The cases, in fact, are similar to saying this statement is false, and Java would have to specify specific behavior for these cases. I still find it very difficult to believe that the close() method is not called for no reason other than being in a finally block. However, I wonder if it might be related to the finalizer thread issue that is raised on the page you cite. tim. This site demonstrates the pitfalls with using returns finally: http://www.cs.arizona.edu/sumatra/hallofshame/ It seems like this behaviour is not specified by the Java Language Specification. Cheers, Scott Greg Davis wrote: This deals with try/catch blocks and finallys. I always believed that no matter what a finally block is always called. While this seems to remain true, it does not seem to necessarily properly call the code within the block. In the section below I have some code and explanation of how a finally gets called, but does not execute the code within. There seems to be an issue with closing a JDBC connection if a method returns in the middle of the try/catch block. It seems to call the finally, but does not close the connection. It does seem to call static methods like System.out.println() perfectly fine. I don't know if it being static has anything to do with it. I haven't researched it too far since it was really hard to find. First off you have to have a Factory like a ConnectionPool that spawns out inscances of an object for other classes to use. Then it must need to have the user close it's connection at some point so the Factory can control resources. The only example I really have on hand is a JDBC connection pool in a J2EE app server. This is where the problem occurd for us. If the methods returns are moved outside the try/catch block, the Connection.close() happens properly and the ConnectionPool does not complain. I realize the getColumnClose() is the better way to implement the code ayway, but I wanted to show everyone this problem in case they accidentally do it in their code somewhere. Any returns in the try or catches seemed to make the finally not be properly executed. I seem to remember some wierd rule about this at JavaOne last year, but my head is still racing from all that information. :-) Any comments? package test; import java.sql.*; import javax.sql.DataSource; import javax.naming.*; /** * pTitle: TryCatchTest/p * pDescription: This is a test application for try/catch problem. If using * a Connection Pool in JDBC and you try to return a value within a try/catch * that is inside a method, the finally of that try/catch is not completely run. * It seems to go through the finally(I.E. Sytem.out.println() works, but the * Connection.close() is either never called or not executed. If the return * is moved to the outside of the catch block, the connection is properly closed. * br * We found this because a J2EE server which had a connection pool was telling * us we were not closing our connections. I dn't know if there is some rule that * when a return has been called only static methods or something like that can * be called./p * pCopyright: Copyright (c) 2002/p * pCompany: Western Electronics /p * @author a href=mail:[EMAIL PROTECTED]Greg Davis/a * @version 1.0 */ public class TryCatchTest { Context jndiContext; public TryCatchTest() { try { jndiContext = new InitialContext(); } catch(NamingException ne) {} } public String getColumnNoClose() { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { String sql =SELECT table_name FROM sequence; conn =((DataSource)jndiContext.lookup(jdbc/mySourceDS)).getConnection(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); if(rs != null rs.next()) { //This return causes the ?non-static? code within the finally to not to be run. return rs.getString(table_name); } //same here, the finally ?non-static? code is not called. return null; } catch(NamingException ne) { //same here, the finally ?non-static? code is not called. return null; } catch(SQLException sqle) { sqle.printStackTrace(); //The same problem occurs here. The finally ?non-static? code is not called return null; } finally { //This system out works, but the conn.close() does not. The only way I //know how to check this is to create a ConnectionPool yourself that watches //the connections it spawns out, or user a pre-built one that does the same.
RE: timed events
There are several solutions out there, both commercial and open source. You might wish to take a look before reinventing. tim. Which is not that portable across Application Servers ;) Typical issues are JNDI lookup problems up to ClassCastExceptions. Jens | -Original Message- | From: [EMAIL PROTECTED] | [mailto:[EMAIL PROTECTED]]On Behalf Of | [EMAIL PROTECTED] | Sent: Wednesday, March 13, 2002 5:21 PM | To: Orion-Interest | Subject: RE: timed events | | | Hi, | | I use a java.util.Timer wrapped my Scheduler class to schedule | tasks. I bind | an instance of this Scheduler to the JNDI from one of my servlet's init() | method. | | It works fine, use -userThreads switch to start orion if you want context | lookup from the scheduled threads. | | HTH, | | Tibor | | -Original Message- | From: daniele rizzi [mailto:[EMAIL PROTECTED]] | Sent: Wednesday, March 13, 2002 2:25 PM | To: Orion-Interest | Subject: R: timed events | | | | Hi Casper, | | EJB are not multithreaded but a normal class *is*. | | Try putting the stuff in a public class TryMe extends Thread{} | | d. | | ps. if you need a scheduler the things are tougher. | | | | -Messaggio originale- | Da: [EMAIL PROTECTED] | [mailto:[EMAIL PROTECTED]]Per conto di Casper | Højstrup | Inviato: mercoledì 13 marzo 2002 10.21 | A: Orion-Interest | Oggetto: timed events | | | | This more of a regular EJB question, I suppose. | | I need to initiate some specific tasks and specific times in my | application, | since the application server aren't multithreaded(so to speak), and the | usage of threads is not recommended, I cannot make a simple | timer, that will | initiate the appropriate procedures at a given time. | How do one solve such problems in an EJB application ? | | Regards | . |
Re: Many clicks, many request...
This is usually handled by wrapping JavaScripts around the clickable object to disable it upon the first click, thus eliminating the next 99 clicks. tim. Hi, If I make 100 clicks fastly from my browser in a servlet, it generates 100 requests and 100 processes in the server. One only process is very time consuming. Is there a way to process the fisrt click and avoid the rest 99 clicks. Any alternatives? Thank you. Andres.
Re: question about ip allocation
That is not true. Every ethernet interface can listen on its own port 80. This can even be done with virtual interfaces which share the same physical network card. Ports are a abstraction implemented at the driver level and based on header information in each packet. tim. Your machine has 2 IP-adresses but only one port 80 ! No 2 servers can listen on 1 port - no matter how many network cards You pull in. You have to bind the IPs to different ports. I am doing this on Linux but don't know how this is done on Windows. Max -- Maximilian Eberl - developer - netzdenker.de http://www.netzdenker.de mailto:[EMAIL PROTECTED] Ludwigstrasse 2 D-67346 Speyer / Germany tel: +49-6232-2602-02 fax: +49-6232-2602-05
Re: FW: [JBoss-user] Redux of Performance Issues
Sounds to me like the lead developer of JBoss is a fifteen year old kid who is too busy watching MTV to bother with a serious reply to your posting. tim. Wow. I know people have complained about this list being a little slow, but if this is what I get from the lead developer of JBoss on how to fix up JBoss performance to compare to Orion's, then ... well ... perhaps I should be spending more time on this list. I'm a little disappointed. I have some interest in both JBoss and Orion, and it's frustrating to get this kind of a response from a key player in the JBoss community. - Geoffrey : -Original Message- : From: marc fleury [mailto:[EMAIL PROTECTED]] : Sent: Tuesday, November 27, 2001 2:34 PM : To: [EMAIL PROTECTED]; [EMAIL PROTECTED] : Subject: RE: [JBoss-user] Redux of Performance Issues : : : look dude, : : get the integrated jboss-tomcat stack you are running : non-optimized out of : stack, period. : : come back when you have set it up, or don't we don't care, : : marcf
Re: (my) problem locating a textfile from a Servlet
Have you tried a leading slash? file1 = getServletContext().getResource( /WEB-INF/log4j.xml ); What we do, is get the real path with: String realPath = this.getServletContext().getRealPath( /WEB-INF/dir ); new File( realPath, fileName ); We do this because getResource() is so dependent on ClassLoaders. tim. Hi, I wanted to port a (running) application from tomcat to orion. It seems my coding is not proper/portable. In my war-archive included (in WEB-INF subdirectory) are several text config files (yes I know JNDI is a better way -but its lowest common functionality) - and these files I want to access in my servlet code. Following servlet code does not find these files running in orion while working fine with tomcat 3.2. For a beginner: whats the correct way to load such files ? package de.adig.vbh.wc.controller; ... public class UIMain extends HttpServlet { ... file1 = getServletContext().getResource(WEB-INF/log4j.xml); file2 = getServletContext().getResource(WEB-INF/wc-config.xml); == both files are null in orion, but found in tomcat. files are in dir WEB-INF/ that is in a war-archive that is in an ear-archive. they got successfully unpacked by orion and can be seen in orionconsole Manfred Regele ADIG Investment GmbH 22 MethodenTools Richard-Reitzner-Allee 2 85540 Haar Tel: 089/46268-308 mailto:[EMAIL PROTECTED] http://www.adig.de
Re: Security bug with application clients?
I think maybe I didn't make something clear. I am using a java application client, NOT a web client. As such, I cannot invalidate sessions, make posts, etc. I will repeat that we have seen that Orion's InitialContext and Principal identity features do not work. They do not work in servlets, they do not work in client apps. They do not work for JMS. They do not work, Sam I am. We have given up on using any container authentication short of guest. This is only for dynamic identities. It appears that static identity via the 'jndi.properties' file works ok. Orion seems to be written primarily as a web app server, and I have seen very little information on using it as a direct application server (in Orion literature or in the Oracle OC4J docs.) Since very few people are using Orion in this way, I guess I should expect to see a few bugs here and there. (I'm guessing that this is an application-client specific issue.) We use Orion with standalone Java client applications. They work fine. Except for authentication, which does not work.
Re: Update to 1.5.0 help please ?
Did you remove the application deployment directory for your app? This is the first thing I do when stubs are misbehaving. tim. I just updated to 1.5.0 as well, and everytime I start Orion it complains about a wrapper that I can't find anymore on my machine How do I solve this ?? (I compiled all the source again, and it doesn't give me any errors !!). BTW: when I start version 1.4.7 again, I don't have any problems ??!!! :( The error: --- [orion@ojo Orion]# java -jar orion.jar Auto-deploying /home/development/lib/java/jars/csd.jar (New server version detected)... Found 5 semantic errors compiling Operator_EntityBeanWrapper0.java: 275. catch(java.sql.SQLException e) - *** Error: This catch block may be unreachable because there is no exception whose type is assignable to java/sql/SQLException that can be thrown during execution of the body of the try block. . .. ... - Eddie
RE: init params
Thanks for the quick posts. Stupid me, I thought getInitParameter would always be for init-params. I wonder why... getServletContext.getInitParameter(String):String is not getServletContext.getContextParameter(String):String ? Because getInitParameter() was invented before contexts ever existed. tim.
Re: TO THE DEVELOPERS: java.net.SocketException: socket closed
I am not sure, but this may actually be a bug in the JVM. I say this becuase I documented a Socket bug three years ago that involved the closing of one side of a Socket connection. For example, in the UNIX RSH protocol, the Socket used in the protocol appears as stdio. In other words, stdin, stdout, and stderr (on a second socket). RSH is designed to run commands, and many UNIX commands use end of file (EOF) on stdin to signal the completion of processing. For instance, the cat program reads data from stdin, and writes the data to stdout, until it sees EOF on stdin. Thus, the RSH protocol can not run cat unless it can signal EOF on its stdout, which is the server-side program's (cat in this case) stdin. HOWEVER, the only way to signal EOF on a socket is to close the socket. Now, sockets have two sides, and you are able to close one side or the other, while continuing to use the other side. Thus, in theory, the RSH client program should be able to close its stdout (cat's stdin) to signal EOF, while continuing to read its stdin (cat's stdout) to read the output from cat. ALAS, when the client closes its stdout side of the Socket, the JVM actually closes BOTH sides of the socket connection, which is a bug. It prevents the client from reading cat's output! Supposedly, this bug was fixed in Java 1.3.1, but I have not had time to verify this. Thus, if you are not using the 1.3.1 JVM, you may want to try it to see if you get the same behavior. tim. java.net.SocketException: socket closed at java.net.PlainDatagramSocketImpl.receive(Native Method) at java.net.DatagramSocket.receive(DatagramSocket.java:392) at com.evermind.net.jc.ar0(JAX) at com.evermind.server.jms.ca.run(JAX) at java.lang.Thread.run(Thread.java:484) More: Using Win2k, Orion 1.4.5 (1.4.8), RMI clustering turned on. Explanation: My research points, that Orion is using one and the same port to multicast and receive multicasting messages. However, if one tries to close the sending socket, the receiving one is also closed (not in all 100% of the cases. Approximately that happens every 25%, something to do with the synchroinization I think).
Re: .shtml ...help
Unless Orion has builtin support for server side includes, you will probably need to find a servlet that perform this for you, and map *.shtml to the servlet. I do believe there are open source servlets out there that will give you server side include support. If you are only using the include feature, it is easy to write your own. tim. hi please help out... how to go abt. executing a .shtml file in orion? thanx in advance __ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/
Re: Simple Java Doubts
I believe that both of these questions are completely off-topic. Question 1: How does an elementary Singleton pattern based Object behave in a multi-threaded environment? What is this phenomenon called? How do you make such a Singleton Object thread safe? There are several excellent articles on the net with respect to this specific question, as well as how it relates to synchronization of the Singleton's code. A google search will find these articles for you. Question 2: I also believe, having programmed trading systems for over a decade, that you will find that there are many existing protocols for accomplishing just this sort of thing. FIX comes to mind. However, this will depend more on your environment and clients, than it will on Java technology. What are the two methods typically employed to notify remote clients distributed over the Internet of events that take place on a central server? Like changes in the price of options, market depth, or an order execution? What are the relative advantages/disadvantages of each of these strategies? Specifically, how can they be implemented in Java to allow for firewall tunneling over HTTP?
Re: FW: custom finder in CMPs (SLSB facade)
The thing which puzzles me is why not go to the Entity Bean directly itself? It saves both computer and programming resources. In all discussions and readings I have found no decent arguments that prevent me from going direct, unless you throw in the -valid- information hiding argument. Because you may be accessing more than one EB via the SLSB, as I explained in my previous posting. Did you read it? I specifically CC-ed you on that email. Now I know that the quality of constructive comments does not necessarily have a positive correlation with the price of a suite, but an expensive (and thus highly regarded) consultant claimed that using a SLSB facade is better. I still can't figure out why (although I do agree that the extra performance overhead is little), so I'm tending to the position that it's probably bollocks. Unless you consider network latency. I take it you have not done I lot of RPC programming in your many years as a developer? Stuborn at the risk to get shot ... Cocking gun... ;) tim.
RE: custom finder in CMPs (SLSB facade)
Now the question: How come so many people are keen on introducing SLSBs as a facade in front of Entity Beans to improve the performance? The same code (plus a tid bit extra) needs to be executed, the same pooling behavior is there for the Entity Bean and yes the SLSB introduces little to no overhead, but I still see no gain. What benefits am I overlooking? Then imagine this: Scenario 1 - No SLSB: The logic is implemented in the client program, which resides across the network. The client accesses 100 entity beans in performing its logic. That means 1000s of network hits to access the beans and invoke their methods. Slow network? Really slow client. Scenario 2 - SLSB: The logic is in the Session Bean. The client, which is still across the network, makes a single call into the SLSB. The SLSB now accesses the same 100 entity beans and still makes 1000s of method calls on those beans. HOWEVER, this time, all of that overhead occurs within the container, greatly reducing the performance penalty, and allowing for some container optimizations. The result is then sent to the client. Slow network? Much better performance than Scenario #1. Make sense now? tim.
Re: Caching XLS style sheets
I asked a question on an MVC application architecture using XLS, and got advice to cache XLS / XSLT style sheets, and pre compile them. Sounds like something I would say... Can someone give me some more background on this. Hope so. How? The code we use is totally tied to Xalan, but can easily be generalized with newer APIs. The following code will compile a stylesheet, and write the compiled stylesheet (a StylesheetRoot object in our case) to a file: String sysId = file:/path/to/style/sheet/file.xsl; FileInputStream styleSheetIn = new FileInputStream( ... ); ObjectOutputStream serialOut = new ObjectOutputStream( ... ); XSLTInputSource xSrc = new XSLTInputSource( styleSheetIn ); xSrc.setSystemId( sysId ); StylesheetRoot root = processor.processStylesheet( xSrc ); serialOut.write( root ); The SystemId is necessary so that Xalan can find me xsl:include files. Our servlet code, in turn, then loads the compiled stylesheet with code that looks like this: XSLTProcessor processor = XSLTProcessorFactory.getProcessorUsingLiaisonName ( org.apache.xalan.xpath.xdom.XercesLiaison ); ObjectOutputStream serialOut = new ObjectOutputStream( ... ); StylesheetRoot compiledStyleSheet = serialIn.readObject(); Once the stylesheet is loaded, we can use it in a call to process: compiledStyleSheet.process( processor, xmlSource, htmlOut ); What if the content is dynamic? (2 million items and 100,000 of styles + with any combination) I am not sure what this means. Are you saying that your XSL stylesheets are dynamic? Or are you describing your XML tree? When you say 100,000 of styles, what does that mean? tim.
Re: Number of JVMs on Orion..
java -jar orion.jar Hi Tim, Thanks for your reply. I would like to know how can we create JVMs running Orion on one machine? Thanks Subrah --- Tim Endres [EMAIL PROTECTED] wrote: Orion does not invoke JVMs. It runs within a JVM. Thus, the answer is one. Of course, this does not prevent you from starting any number of JVMs running Orion. Hi, Can anyone explain how many number of JVMs can we create on Orion? Thanks Subrah __ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/
RE: [EJB] orion-ejb-jar.xml
Hi Steffen, I'm new to orion as well. But I discovered, that after deployment you find a generated orion-ejb-jar.xml in the application-deployments/.. This can be changed and orion keeps your changes after another deployment. I would prefer to have the orion-ejb-jar.xml in jar file (like jboss.xml ;). Maybe it's somehow possible... Just put it in your deployment. Orion will pickup your copy, make any changes it needs, and use the result.
Re: Number of JVMs on Orion..
Orion does not invoke JVMs. It runs within a JVM. Thus, the answer is one. Of course, this does not prevent you from starting any number of JVMs running Orion. Hi, Can anyone explain how many number of JVMs can we create on Orion? Thanks Subrah
Re: broken default web app - not found
Sounds to me like you have no META-INF/* for your application at the path C:/orion/applications/pussycat, which you specified for your app? Where is your META-INF setup? That did bring back the default Orion Web App, and as the default site/app my other app is dead now: Error instantiating application at file:/C:/orion/applications/pussycat/: Unable to find/read assembly info for C:\orion\applications\pussycat (META-INF/application.xml) Error initializing site Pussycat Web Study: No application named 'pussycat' found in the server Orion/1.4.5 initialized I guess the real trouble is that I'm not sure of the distinct meanings between server web site web appliction default web site default web appliction global... i have not found these defined on the orion site. j. Tim Endres [EMAIL PROTECTED] wrote: In my server.xml file, I have the following line: global-application name=default path=application.xml / Looks to me like you've replaced the default web-app with your own 'pussycat'. You application should be defined by a separate app line, such as: application name=pussycat path=/path/to/app/dir auto-start=true / Note how the path is a path, not an xml file. It could also be your EAR file if you have deployed that way. tim. I managed to deploy a website/app but in so doing, broke the default website with all the nice jsp examples. I would like to use that default app to test and learn about jsp and plug modified versions into my app. now i get this error from orion: Error initializing site Default Orion WebSite: No application named 'default' found in the server how do i unbreak the default web app and keep it working alongside my app - and KISS? thanks in advance. Joey, newbie in distress relevent config files: orion/config/server.xml: ... global-application name=pussycat path=application.xml / !-- global-application name=default path=application.xml / can't do this-- global-web-app-config path=global-web-application.xml / web-site path=./pussycat-web-site.xml / web-site path=./default-web-site.xml / ... orion/config/application.xml: ... orion-application web-module id=pussycat path=../applications/pussycat / web-module id=defaultWebApppath=../applications/default-web-app / ... orion/config/default-web-site.xml: ... web-site host=[all] port=80 display-name=Default Orion WebSite default-web-app application=default name=defaultWebApp / /web-site orion/config/pussycat-web-site.xml: ... web-site host=[all] port=80 display-name=Pussycat Web Study virtual-hosts=localhost default-web-app application=pussycat name=pussycat / !-- default-web-app application=pussycat name=defaultWebApp / can't do this-- ... /web-site server.xml: ... application-server application-directory=../applications deployment-directory=../application-deployments ... global-application name=pussycat path=application.xml / !-- global-application name=default path=application.xml / can't do this-- global-web-app-config path=global-web-application.xml / web-site path=./pussycat-web-site.xml / web-site path=./default-web-site.xml / ...
RE: Interests sake
Does Orion support digital unix ? Thanks! I believe the answer to the question: Does Orion support XYZ operating system? Is answered by: Yes, if you have an adequate JVM. tim.
Re: broken default web app - not found
In my server.xml file, I have the following line: global-application name=default path=application.xml / Looks to me like you've replaced the default web-app with your own 'pussycat'. You application should be defined by a separate app line, such as: application name=pussycat path=/path/to/app/dir auto-start=true / Note how the path is a path, not an xml file. It could also be your EAR file if you have deployed that way. tim. I managed to deploy a website/app but in so doing, broke the default website with all the nice jsp examples. I would like to use that default app to test and learn about jsp and plug modified versions into my app. now i get this error from orion: Error initializing site Default Orion WebSite: No application named 'default' found in the server how do i unbreak the default web app and keep it working alongside my app - and KISS? thanks in advance. Joey, newbie in distress relevent config files: orion/config/server.xml: ... global-application name=pussycat path=application.xml / !-- global-application name=default path=application.xml / can't do this-- global-web-app-config path=global-web-application.xml / web-site path=./pussycat-web-site.xml / web-site path=./default-web-site.xml / ... orion/config/application.xml: ... orion-application web-module id=pussycat path=../applications/pussycat / web-module id=defaultWebApppath=../applications/default-web-app / ... orion/config/default-web-site.xml: ... web-site host=[all] port=80 display-name=Default Orion WebSite default-web-app application=default name=defaultWebApp / /web-site orion/config/pussycat-web-site.xml: ... web-site host=[all] port=80 display-name=Pussycat Web Study virtual-hosts=localhost default-web-app application=pussycat name=pussycat / !-- default-web-app application=pussycat name=defaultWebApp / can't do this-- ... /web-site server.xml: ... application-server application-directory=../applications deployment-directory=../application-deployments ... global-application name=pussycat path=application.xml / !-- global-application name=default path=application.xml / can't do this-- global-web-app-config path=global-web-application.xml / web-site path=./pussycat-web-site.xml / web-site path=./default-web-site.xml / ... end Get free email and a permanent address at http://www.netaddress.com/?N=1
Re: Backward compatibility
You will need to be more specific. We ran into a problem with XML. We coded to the Xalan 1 API, making use of a class named 'XPathSupport'. However, this API has changed in Xalan 2, and Orion 1.4.8 uses Xalan 2. So we have put off updating to 1.4.8 until we can update our code to Xalan 2. We have not spent a great deal of time on it, but it does appear there is no way to work with Xalan 2 as our code is currently written. tim. Orion 1.4.8 not backward compatbile with at least 1.4.7? Anyone else experience this problem? -- Adam Cassar Technical Development Manager ___ NetRegistry http://www.netregistry.au.com Tel: +61 2 9641 8609 | Fax: +61 2 9699 6088 PO Box 270 Broadway NSW 2007 Australia
Re: IIS, Orion, virtual host
I've done this before, and this does prevent multiple web servers from listening on the same port. I think that this is definitely a problem. A virtual IP does not have it's own port, but it is sharing the same port with the main ip. If a machine has main ip 1.2.3.4 and virtual 1.2.3.5 and 1.2.3.6, if I set a web server on port 80 on 1.2.3.4, also the other two ip address will be listening on port 80. There is no 1.2.3.5 or 1.2.3.6, unless you have additional interfaces, which are either virtual interfaces providing additional IPs on a single card, or multiple cards. This, obviously, unless you have 2 different network cards on the system. Or virtual interfaces running on the same real ether card. tim.
Re: MVC/XML Framework Comments please
We do exactly what you propose. A servlet drives lightweight commands. The commands get XML trees containing the HttpServletRequest information, and fill in a subtree with the XML results. This tree is fed into XSLT and the resulting HTML is sent down the wire. I prefer it over JSP by miles. We precompile the XSL pages, so we get really good performance. And the separation of content/presentation could not be better. tim. We are bout to pick a a framework, and I am looking for are comments or recommendation on a frameworks, other than Struts. (Don't want to be HTML/JSP centric) Any feedback on your experience with a framework, or do you know of web sites in production that are using a certain frame work, or do you know of friend or someone who has used one. I would like it to be XML centric, and MVC. For example, the V should apply the XSL to XML, to make it HTML. It should do standard session tracking. It should do standard data manager, so that Java Beans do the SQL (the M). A minor plus is form entry management and a bit of image/content management. It should be a single rich framework. Here are a few we are considering: http://www.jcorporate.com/html/products/productsfm.html http://jakarta.apache.org/jetspeed/site/index.html and all the ones under Jakarta. We need to pick one soon. Any comments and feedback welcome on frameworks/class libraries. Thanks, [EMAIL PROTECTED]
RE: MVC/XML Framework Comments please
It sounds like Tim has a homebrew system for going directly from Logic to Presentation. My team has been thinking of eventually writing a wrapper to expose JavaBeans (the model) as a DOM using reflection so you could still have a pull-based system rather than having to build the full tree ahead of time. I'm not sure it's ultimately desirable to skip the Logic-Content step, although it would improve performance. Not quite. We use Logic (Session Beans/Commands) -- Content (XML) -- Presentation (XSL). We simply apply the XSLT transform ourselves, as opposed to having Orion do it, so we can precompile and cache appropriately. I personally think that skipping the Content step is shortsighted. For instance, our web page designers never need a live system to connect to. We simply provide them with XML files and they write the XSL against the static XML files. When the XSL is dropped into the live system, it simply operates on live XML coming from the Logic layer. I think this abstraction is important. tim.
Re: MVC/XML Framework Comments please
We rolled our own servlet for this. I found none of the existing frameworks to properly address what we needed. It is not a complicated thing to write. An XML config file specifies the commands that get executed for any given pathinfo. The command is tied to an XSL stylesheet, which processes the XML that the command generates. Precompiled stylesheets are effectively XSL stylesheets that have already been parsed from the XML text into the DOM Node tree that is used by the XSLT processor. These compiled stylesheets are then Serialized out, and then Serialized back in, such that our code can then skip the cost of parsing the XSL's XML file, in exchange for the cost of serialization. tim. Tim, that sounds v.interesting. Forgive my ignorance but what toolkit are you using and what do you mean by precompile the XSL pages? Thanks, Trevor On Thu, 26 Apr 2001, Tim Endres wrote: We do exactly what you propose. A servlet drives lightweight commands. The commands get XML trees containing the HttpServletRequest information, and fill in a subtree with the XML results. This tree is fed into XSLT and the resulting HTML is sent down the wire. I prefer it over JSP by miles. We precompile the XSL pages, so we get really good performance. And the separation of content/presentation could not be better. tim. SNIP
RE: work around for rh7.1
This is a fresh install of rh7.1 (not an upgrade), then install jdk1.3.1rc1. If you just use the LD workaround, and type myjavapath/bin/java -version You will get a hang. I just wanted to be clear. This works fine for me, and is running the entire Giant Java Tree site, which is a considerable load. I am really curious why. This is with a fresh RH7.1 install followed by Sun's JDK1.3.1rc1. So we are seeing different results. tim.
Re: .zip files and solaris
jar xvf file.jar In development, I work with Orion on both Solaris and Windows 2000. But there must be an easier way of dealing with Orion and Jboss zip files. I use winzip to unzip them in Windows, and FTP the unzipped version to Solaris. Is there any third party software to unzip a zip file on solaris? Tar and tar.gz are easy. What does everyone use for Orion on solaris? I haven't addressed this question to my Unix administration folks yet, and I thought I would try here first. __ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/
RE: .zip files and solaris
Check your facts. Under Linux with JDK1.3.1rc1: time jar tvf kp-051299.zip 0 Wed May 12 10:03:52 EDT 1999 exception/ 1956 Tue May 11 12:23:32 EDT 1999 exception/codebase.dat 5310 Fri May 07 16:11:46 EDT 1999 exception/exception.vjp 3609 Mon Feb 01 10:22:42 EST 1999 exception/KPCareTeamAddrNotFoundException.java 2628 Mon Nov 23 13:20:52 EST 1998 exception/KPClassNotInitializedException.java 3458 Tue Apr 06 15:51:56 EDT 1999 exception/KPGeneralException.java 2583 Sat Jan 30 13:32:36 EST 1999 exception/KPInstantiationException.java ... So it works for me. tim. That'll NEVER work for a zip -Original Message- From: Tim Endres [mailto:[EMAIL PROTECTED]] Sent: Saturday, April 21, 2001 10:17 PM To: Orion-Interest Cc: Kemp Randy Subject: Re: .zip files and solaris jar xvf file.jar In development, I work with Orion on both Solaris and Windows 2000. But there must be an easier way of dealing with Orion and Jboss zip files. I use winzip to unzip them in Windows, and FTP the unzipped version to Solaris. Is there any third party software to unzip a zip file on solaris? Tar and tar.gz are easy. What does everyone use for Orion on solaris? I haven't addressed this question to my Unix administration folks yet, and I thought I would try here first. __ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/
Re: Application mapping - how do I know it from within the app?
getContexstPath(), which is what you want, is a method of HttpServletRequest. tim. Nope, when doing just that I get... 500 Internal Server Error Error parsing JSP page /aller/Allas/subscriber.jsp Syntax error in source/Allas/subscriber.jsp.java:32: Method getContextPath() not found in interface javax.servlet.ServletContext. (JSP page line 8) String servletPath = pageContext.getServletContext().getContextPath(); ^ 1 error - Original Message - From: "Hani Suleiman" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Wednesday, April 11, 2001 5:30 PM Subject: Re: Application mapping - how do I know it from within the app? pageContext.getServletContext().getContextPath() On Wed, 11 Apr 2001, Johan Fredriksson wrote: I'm using virtual hosts in my development to make sure that all links are correctly set, that is I can access the same app in two ways, either via appname.localhost or localhost/appname . The problem is that I'm not sure how to figure out on a jsp page which entry point was used, and this causes problem when I'm trying to map my servlet, since relative paths to servlets does not seem to work... String parsing of request.getRequestURI() seems like a way to start, but I'm not sure what how to write it, since in the future the app might be moved again to appname.serviceprovider.localhost vs localhost/serviceprovider/appname . Is there a way to get pageContext return application context? Johan
RE: Is this the Orion Team?
Well I would not know - I have never met him... I wonder what makes you able to make that king of comparison... I believe this was a "joke", which is tied to American TV, specifically Saturday Night Live and Dana Carvey's Satan skits. If it was not, then I have the same question as you. tim.
Re: How to enable UserManager support for arbitrary user...
Is this what you are looking for? RoleManager roleMgr = (RoleManager) (new InitialContext()).lookup( "java:comp/RoleManager" ); roleMgr.login( "user", "pass" ); Unfortunately, I think that can only run in the container. To accomodate multiple logins under a servlet, we used to use a new InitialContext on every servlet request and set the appropriate JNDI properties for each InitialContext construction. tim. We have developed a web application with our own user/group schema. Creating a UserManager to map our schema seems pretty trivial. What we are NOT clear on is how to tell Orion that a particular user has logged in. For example, we start our application with a LOGIN.JSP page, which accepts user name/password, and proceeds to find the user in the database. After the user is found/authenticated, we create an HTTP session, and store a certain User object in the session to tell us who the user is on the next http request. How do we introduce J2EE security into this picture. In other words, how do we tell Orion which user is logged on so that it starts using the security attributes/group/rights of the deployment descriptors? Do we need to put a special attribute into the HTTPSession so that Orion knows on behalf of what user the request is running? Thanks. -AP_
RE: How to enable UserManager support for arbitrary user...
Again, I am not sure if your JSP page can even make this call. I have only ever used it in the container in a session bean. I seem to remember not being able to lookup the RoleManager from my servlet. I think you would have to have every SB method call this. Which is why I suggested using the InitialContext approach, which is portable across servers, and I think it scales better. Alas, it is pre-empted by a bug in Orion in that servlets don't properly initialize the credentials on the first (or in my case, all) use. tim. Tim, this IS what I am looking for, but does it mean that I need to put this into every .JSP page that I have? Then, somehow (according to J2EE spec) Orion will forward this information to all EJB calls and properly make use of the deployment descriptor stuff? So every .JSP page will check the session, find the User object which I stored in there, and execute this call with the user.login and user.password? Thanks. -AP_ -Original Message- From: Tim Endres [mailto:[EMAIL PROTECTED]] Sent: Friday, April 13, 2001 3:04 PM To: Orion-Interest Cc: Alex Paransky Subject: Re: How to enable UserManager support for arbitrary user... Is this what you are looking for? RoleManager roleMgr = (RoleManager) (new InitialContext()).lookup( "java:comp/RoleManager" ); roleMgr.login( "user", "pass" ); Unfortunately, I think that can only run in the container. To accomodate multiple logins under a servlet, we used to use a new InitialContext on every servlet request and set the appropriate JNDI properties for each InitialContext construction. tim. We have developed a web application with our own user/group schema. Creating a UserManager to map our schema seems pretty trivial. What we are NOT clear on is how to tell Orion that a particular user has logged in. For example, we start our application with a LOGIN.JSP page, which accepts user name/password, and proceeds to find the user in the database. After the user is found/authenticated, we create an HTTP session, and store a certain User object in the session to tell us who the user is on the next http request. How do we introduce J2EE security into this picture. In other words, how do we tell Orion which user is logged on so that it starts using the security attributes/group/rights of the deployment descriptors? Do we need to put a special attribute into the HTTPSession so that Orion knows on behalf of what user the request is running? Thanks. -AP_
Re: Error starting HTTP server
Because HTTP attempts to bind to port 80, which is a priveleged port under UNIX, I believe that you must start orion as the root user. tim. On NT Orion is running great but on Solaris JDK1.2.2 when I do java -jar orion.jar I get an error message flagging a problem with HTTP initialization. How do I debug/trouble shoot this. Are there any debug flags? Cheers, Ash % java -jar orion.jar Error starting HTTP-Server: Permission denied Orion/1.4.5 initialized _ Get your FREE download of MSN Explorer at http://explorer.msn.com
Re: AdJuggler on Orion
A more common reason for that error is that your database server, or the JDBC driver, has a timeout built into the connection. For instance, MySQL will timeout a connection after 8 hours. The MySQL JDBC driver has a option that you can turn on to "keepalive" the database connection. If it were an incompatibility with the JVM or servlet engine, seems it would happen constantly, not occasionally. Connection timeouts, on the other hand, do occur occasionally. I would not be concerned about the error, since it should not cause corruption, just failed requests. I would, however, be concerned about technocal support from Thruport. tim. I am running AdJuggler Pro (http://thruport.com/adjuggler/) on Orion and have been getting the following error on occassion. Does the statement from Thruport Support sound accurate to you guys and should I be concerned about this occasional error? thanx, Larry -Original Message- Entered on 04/06/2001 at 14:25:34 by noc: The error is caused by a problem with the socket connections. They are not usually fatal in therms of the application. More often then not it is caused by an incompatibility in either the JVM or the servlet engine used. -Thruport Support -=- [EMAIL PROTECTED]: I am still receiving these errors on occasion. Any indication as to what to look at would be helpful. Or at least an explanation of what this error means. -Larry -Original Message- Sent: Wednesday, April 04, 2001 11:55 PM Subject: Internal Error In AdJuggler at site: AJ4 Banner Server Error from AdJuggler at site: AJ4 Banner Server Exception: java.sql.SQLException: Io exception: Connection reset by peer: JVM_recv in socket input stream read at com.thruport.adjuggler.b.m.a(m.java) at com.thruport.adjuggler.b.w.run(w.java) at com.thruport.adjuggler.i.c.g.run(g.java)
Re: How to specify a servlet as a main page
I think you need to map your servlet to the url "/", and handle from there. tim. Hi all, Until now I have been using a boot.jsp page as the main entry point to my application. But now I have changed it to a servlet. On the web.xml I have made a servlet mapping, servlet servlet-nameboot/servlet-name servlet-classcom.testing.es.start.Boot/servlet-class /servlet servlet-mapping servlet-nameboot/servlet-name url-pattern/start/url-pattern /servlet-mapping the if I write http://localhost/context/start it goes to this servlet. I would like that whenever the user writes http://localhost/context it is redirected to the boot servlet. I have tried it by putting a servlet mapping only with / but it does not work. I have tried also with the welcome-file-list welcome-file-list welcome-fileboot/welcome-file /welcome-file-list and it does not work. How should I do it? Thanks
Re: Case sensitive files names
Isn't DOS lovely? I am not sure if this is an Orion issue, or a file system issue. However, you really should fix your HTML to match the case. One way to get around the problem would be to write a simple servlet that managed "/". This servlet would then look at the URL and determine the correct filename by matching while ignoring case, and feed the file up from the servlet. This servlet would be pretty easy to write. I do not know if Orion has a setting to correct the problem. tim. Is there a setting that will allow static HTML pages from another web server where character case in file names did not matter to be ported to Orion. Yes, I am a brand new user of Orion and this may be a simple question. In the future we will be using Orion as a full-featured J2EE server but until then I need to get our web site off the other platform. Craig J. Gregory Director of Data Processing Blue Mountain Community College 2411 NW Carden Av. Pendleton, OR 97801 (541) 278-5825 Fax (541) 278-5794
Re: JNDI SecurityException
I have no idea. I simply know that someone on the list claimed to have reported this bug, and to this day my servlets simply will not properly authenticate. I do not know if this is a problem with just servlets, or anything using ApplicationClient{ICF}. Our servlets are running in Orion. I consider this a very serious bug that has servived several releases. Serious indeed. What are you doing for a work-around? There is no workaround. If they do not fix this bug, we will need to deploy on another application server. tim.
RE: Orion + IE + HTTPS = Trouble
If your code demonstrates that Orion loses the session (or creates a new one), each time that the SSL session is re-established, then that would indicate to me that it is an Orion bug. I assumed that your problem was tied to the Basic Auth, but you are apparently using a FORM instead, and your processing it just like ours in that case. Bugzilla :( tim. This is my first HTTPS application, so maybe I'm doing something wrong. Our logon uses a JSP page, and places a UserInfo object in the HttpSession (along with other objects we use for workflow tracking). All subsequent access checks for this object before processing, forwarding to the logon page if it is not found. Our problem was that every two minutes the session changes (a println() in the servlet now displays a different session id), the UserInfo object is not found, so the logon page is displayed again. Adding this registry entry solved the problem on all client machines. How should I change this to get around the problem? My only reason for suggesting that it may be an Orion problem is just that I've never had problems using IE on other company's secure sites, so something is being handled differently. If the problem lies with me, thats OK, I just need someone to point me in the right direction so I can fix it. Thanks, Bruce -Original Message- From: Tim Endres [mailto:[EMAIL PROTECTED]] Sent: Monday, March 26, 2001 2:24 PM To: Orion-Interest Subject: Re: Orion + IE + HTTPS = Trouble The artical you reference on Microsoft's site explicitly states that the problem is in MS's products, which implies it is not an Orion problem. Further, the problem is related to BASIC AUTH dialogs. Thus, the reason I believe you are not seeing this problem in general with other servers is that nobody uses basic auth. Most sites put their login pages up as HTML FORM's, not as basic authentication. tim. IE 5.0/5.5 running on 95/98/NT keeps losing it's HTTPS session with Orion, which is big trouble if you store logon info there. By default these versions of IE renegotiate their SSL connections every two minutes, but this can be changed by adding a DWORD registry entry. HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\ClientCache Time Adding this entry, and setting it to 0x7FFF has solved all our issues with forcing constant logons when running in secure mode, but is a major pain because it has to be done for all clients (except Win2K and WinME clients) Since I have never come across this problem when logging on to other HTTPS sites on the web, I can't help but wonder if Orion is not handling the situation properly (I've tried it on both 1.38 and 1.45). Does anyone else have any experience with this problem, or can comment on whether Orion should be handling this without modifying every client machine? Thanks, Bruce Microsoft reference: http://support.microsoft.com/support/kb/articles/Q265/3/69.ASP
Re: Deployment xml files in ear file? If so, where?
Except for orion-ejb-jar.xml, which alone has its own place in app/orion/. tim You can place your orion-*.xml files alongside their *.xml counterparts. (eg, principals.xml and orion-application.xml alongside application.xml). Note though that if the application has already been deployed, then these files won't be copied over the existing ones. They're only used in the case of a 'fresh install'. From: "Rian Schmidt" [EMAIL PROTECTED] Reply-To: Orion-Interest [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Subject: Deployment xml files in ear file? If so, where? Date: Mon, 26 Mar 2001 14:47:50 -0800 Hi all, Firstly, we're having great luck with our adventures with Orion. Most everything works as advertised, and the performance is great-- particularly the CMP EJB stuff. Just thought I'd spew a little positivity. Is there some way to include the application-deployments XML files with an application? By that I mean, fer instance, we've made all kinds of modifications to orion-ejb-jar.xml to deal with our OR relationships, the legacy database name mappings, etc. orion-application.xml has a bunch of custom settings too. Were either of those to get wiped by an overzealous Orion, we'd be... sad. So, we're gonna back them up, but... Do we need to manually make those changes after deploying the application on another machine? That seems a little goofy. I'd hate to have to say to a customer "OK, start it up, and then stop it, open this file up and everywhere it says requestId, well, change that to request_id, blah blah, and then restart it." Thanks, Rian -- Rian Schmidt [EMAIL PROTECTED]
Re: JNDI SecurityException
I tried the ApplicationClientInitialContextFactory (by mistake) when I first set this up. I just gave me other problems (I think there was some sort of complaint about a missing application.xml file). As far as I know, there should be no reason that I cannot use the RMIInitialContextFactory for this. I don't *have* an application on Orion, all I have is a single bean. I believe this complaint is because it is looking for META-INF/application-client.xml and is not finding it. Interesting what you point out about a possible bug. Why would this affect only servlets though? Wouldn't this affect *any* remote client? Or is this a bug that affects servlets running in the Orion servlet container? I'm running mine under Tomcat. I have no idea. I simply know that someone on the list claimed to have reported this bug, and to this day my servlets simply will not properly authenticate. I do not know if this is a problem with just servlets, or anything using ApplicationClient{ICF}. Our servlets are running in Orion. I consider this a very serious bug that has servived several releases. tim.
RE: Removing SBs when expiring HttpSessions ... the challenge continues.
We do not have the problem that you describe. Why? Because we do not let the container perform the authentication. We handle authentication *entirely* in our own code, and completely ignore the J2EE/container authentication. Thus, our servlets always access the EJB SB's using a single user/password that is assigned to the servlet. The user/password are not known outside of the company. As I indicated in my previous posting, we handle everything in the SB's with our own UserSession entity bean. When a user logs in, they get a UserSession EB that determines their priveleges. The privelege is handled entirely within our code. We do not use container privelege at all except to secure the handful of methods involved in establishing the UserSession. This design has eliminated almost every complaint that people have posted regarding container authentication, priveleges, and sessions. Further, it allows us to implement "higher level" permission management that can not be managed by the container (such as, can this user modify a record based on their relationship to the owner of the record). tim. As with anything, the devil is in the details. SBs expire in one of a number of ways. The two main ways are: you call remove() or they time out. This is well known. So if you have your SB bound to an HttpSession, everything works and you get get your SB from the session at any time. The REAL ISSUE is, however, the security issues with how you clean up that SB when the HttpSession expires. This is something it seems no one really understands, and it seems to me to be a fairly critical to the proper working of J2EE. The servlet spec does not say anything about WHO calls HttpSessionBindingListener.valueUnbound() when an HttpSession expires. Assume (arbitrarly) that it is an "unauthenticated user" (Orion calls this a "guest"), then if you call ejb.remove() within valueUnbound(), the EJB will be called with the guest user. Well, what if the remove() method is protected by security constraints and guest is not allowed? What if you had to call other methods to clean up that session? Well, someone said "log in with a special user before calling remove()". It doesn't work because one tries to JNDI-lookup a RoleManager to log in, Orion throws an exception saying "javax.naming.NamingException: Not in an application scope". Okay, so just call remove() and do the login in there. That DID work, but WHY? I have my remove() method secured so only authenticated users can hit it. And what if you had to call OTHER methods in addition to remove()? From the responses, it seems either that no one has previously recognized this as a problem, or that they're ignoring it, or I'm just all wrong. So please, am I wrong, or is there an issue here? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Petr Podsednik Sent: Friday, March 23, 2001 12:37 AM To: Orion-Interest Subject: Re: Removing SBs when expiring HttpSessions ... the challenge continues. Hi, If It is possible I have a question regarding this problem. Until now I was thinking there is no problem regarding HttpSession expiring because of garbage collector which knows what remote references became invalid. Please tell me, if I am wrong and why. If it is must be handled in code what about for example Swing clients machine's crashing? Regards Petr When an HttpSession expires, it calls valueUnbound() on all session-bound variables that implement the HttpSessionBindingListener interface. So this provides a way for expiring HTTP sessions to remove session beans that would otherwise stay active and eventually consume all resources and cause the server to crash.
RE: Orion Memory Configuration
I wonder if the exception is misleading in this case. The OutOfMemoryException is reporting "unable to create new native thread". Could this be a limitation on the number of threads a process is allowed to invoke? Could it be that the JVM has a limitation on the number of threads? Or, could it be that there is a system resource, such as a process id, that the new thread needs but exceeds a system limit? Also, can you get your code to show what the JVM thinks it has in terms of free memory, say via Runtime.freeMemory()? Uhh .. didn't the original poster say that he's using the memory options already? He executed "java -Xms512m -Xmx1024m -jar orion.jar". I have a similar problem where I have at least 200MB of memory free still and Orion is dying at about 90MB with an OutOfMemoryException. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex Paransky Sent: Thursday, March 22, 2001 8:22 AM To: Orion-Interest Subject: RE: Orion Memory Configuration Use java's runtime memory options to configure (-Xm -Xs). -AP_ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of McLellan, Richard Sent: Thursday, March 22, 2001 7:23 AM To: Orion-Interest Cc: Hogan, John Subject: Orion Memory Configuration Hello all, I am having a problem when stress testing Orion. I get an out of Memory error from orion. I am running a sun 420R with 2GB RAM with 2 - 500Mhz Processors. As far as the system is concerned there is still 1.7GB RAM available for use when orion dies. I am simulating 5000 users hitting the site at once and as soon as about 64MB of ram is used I get "java.lang.OutOfMemoryError: unable to create new native thread" I have tried starting Orion with the command "java -Xms512m -Xmx1024m -jar orion.jar" to try to allocate more memory to java from the machine and I still get the same error at the same 64MB memory usage mark. Is there a Memory setting in orion that is limiting the orion server that I am missing. If this is a default setting somewhere I hope someone else has run into this. I have looked at the archives and there are a few pages of out of memory errors but None where there was still memory available on the system. I am using the Microsoft Web Application Stress 1.1, the same product used by orion to benchmark the server. I have 5 clients set up to distribute the load of user simulation and I am only hitting one jsp page. Thanks Rich
Re: Java Mail and javax.activation.DataSource
You are missing the JavaBeans Activation Framework classes (also known as Glosgow), which are in the JAR activation.jar. http://java.sun.com/products/javabeans/glasgow/jaf.html tim. Hello all, I'm setting up J2EE program and I'm having trouble getting the Java mail to work. I am getting a java.lang. NoClassDefFoundError: javax/activation/DataSource error when I call Message msg = new MimeMessage(session); Everything else is set up and my code is nearly identical to the ATM example. My mailing code is in a stateless session bean. Anyone see anything like this before? Jonathan Bricker Lilly Research Labs Java ATG
Re: How to do this servlet-mapping?
Why not have your servlet "forward" any request that it does not recognize to another namespace. In other words, using your example, you would forward "/app/ball.gif" to "/images/ball.gif", thus eliminating the "/app" mapping. tim. I've tried using the servlet-mapping of /app/* and pointing this to the servlet. While this makes requests go to the servlet, if, within that servlet, I try to get a request dispatcher to /app/ball.gif and forward there, I get back into the servlet again , presumably because /app/ball.gif maps to the servlet. This, of course, creates an recursive infinite loop and soon the server dies. One alternative that might work, but seems somehow "wrong" to me is to name every action in the web.xml file, e.g. individually map /app/login, /app/logout, /app/dothis, /app/dothat, etc. and then have /app/* for all other resources. I'd like to avoid this particular solution. Any bright ideas?
RE: Class cast exception....
Don't you mean to say that the two JSP pages are generating two separate classes that are each declaring their own Website *inner* class? Your suggested solution is, of course, correct - use a top-level class. tim. Conrad Chan [EMAIL PROTECTED] It is not going to work. Both ess.jsp and ess2.jsp are declaring their own Website subclass and they can't be cast to each other (They are totally different classes). Use a real java class instead. Conrad -Original Message- From: Christian Meunier [mailto:[EMAIL PROTECTED]] Sent: Friday, March 16, 2001 5:02 PM To: Orion-Interest Subject: Class cast exception Hi all, i got a class cast exception trying to use an instance of an object throught 2 jsp pages or so. dumb example: fct.jsp: --- %! public class Website { private int num; private String nom; public Website() { this.num=100; this.nom="example"; } } % ess.jsp: %@ include file="/fct.jsp" % %@ page import="java.util.*"% % Website ess=new Website(); Vector v=new Vector(); v.add(ess); session.setAttribute("essai",v); System.out.println(ess.getClass().getName()); % ess2.jsp --- %@ include file="/fct.jsp" % %@ page import="java.util.*"% % Vector v=(Vector)session.getAttribute("essai"); Website ess=(Website)v.get(0); % = i first load ess.jsp and got the following in log: __jspPage2_ess_jsp$Website =When i load ess2.jsp i got a class cast exception and when i check the class name : __jspPage2_ess_jsp$Website How i can bypass this trouble and why the class name is not Website and thats all ? Thx in advance for ur help. Chris
RE: Removal of SBs from expiring HTTP sessions ...
Does that actually work in the remote EJB model; I mean through the stubs? If not, the servlets using the sessions could just as easily listen and in turn inform the SB's. tim. Can't you just make the SB a HttpSessionBindingListener and implement valueUnbound() ? -mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Gerald Gutierrez Sent: Friday, March 16, 2001 9:33 AM To: Orion-Interest Subject: Removal of SBs from expiring HTTP sessions ... I posted this msg this morning, but I haven't seen it appear on the list yet. I'm reposting in case it was lost ... Session beans (SBs) must have their remove() methods called in order to "clean up" and return to an app server's object pool. I believe one common use of SBs is to create them and then bind them to HTTP sessions so that they can be reused by clients on subsequent requests. There's no standard way to tell when an HTTP session expires. How, then, is it possible for the remove() method to be called to release a SB? Does this not cause "memory leaks" to occur in two ways: 1) resources created by the SB are not released, and 2) the SB itself is not recycled?
Re: Can I use InterBase's DataSource instead of Orion's?
You should not be instantiating DataSource's directly. You should define the DataSource in Orion's configuration file, and then access the DataSource by name via your InitialContext. tim. In normal java application, I may use interbase.interclient.DataSource to access Interbase: interbase.interclient.DataSource ds = new interbase.interclient.DataSource (); ds.setServerName ("192.168.1.200"); ... ... thouth, the Orion's DataSource class does not fit my purpose, can/how I replace with Interbase's DataSource class?
Re: Is it orion compatible with FORM METHOD = POST ?????
FORM POST pages work just fine for us under Orion. However, we are not using JSP pages, we use our own servlets. tim. As the subject explains problem i am facing problem with POST method. When i develop jsp with POST method in my local machine its working great when i place the same file in the remote webserver which is also a orion server its giving me no rosponse it just displaying blank page Anybody have any idea about this. regards waheed
RE: Hypersonic website / docs
Not Java. Not Free. Lengthy registration process required to figure this out. No thanks. Also try kdb at http://www.kx.com . 150kb, all in memory and FAST!!! Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Michael J. Cannon Sent: Tuesday, March 13, 2001 10:22 PM To: Orion-Interest Subject: RE: Hypersonic website / docs Hypersonic is dead...see at http://sourceforge.net/forum/forum.php?forum_id=68224 . Instantdb is the only thing close. The open-source developers of the Interbase project have revolted and taken their code with them (hinting at lack of co-operation from Inprise). They can be found at http://firebird.sourceforge.net/fb_main.html . the project nam is now (obviously) Firebird. SAPdb is Oracle crap, frozen at v.7, with _lots_ of additional libraries and no support (and damn few updates). Find it at http://www.sap.com/solutions/technology/sapdb/ . For my money, if you cant find a decent db for your project at SourceForge or Freshmeat, go with Sybase ASA or IBM UDB and pay for it. Otherwise, write your own. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Kemp Randy-W18971 Sent: Tuesday, March 13, 2001 10:55 AM To: Orion-Interest Subject: RE: Hypersonic website / docs I heard that the original author was not longer actively developing the product, and someone was temporary taking over the administration and maintenance. Because of the state of disruption with hypersonic, I recommend to look at Enhydra's InstandDB, if you wish a Java based RDMS, else look at databases like Mysql, postgresql, Sap4 (sp?), or Boreland's database. -Original Message- From: Julian Richardson [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 13, 2001 8:38 AM To: Orion-Interest Subject: Hypersonic website / docs Hi, What's the correct url for the hypersonic website? I thought the official one was hsql.oron.ch, which I'm sure worked until a few weeks ago but doesn't now - I get a forbidden error when accessing it. Interestingly it comes back with www.hypersonicsql.com in the error page, but that site doesn't seem to exist in any form... What gives? Is anyone on this list anything to do with Hypersonic and knows what's happening with the site (it's been this way for a few days, and I've just double-checked that it's not our web proxy) Failing any kind of online help, are there docs buried within the Orion document tree for Hypersonic? I couldn't see anything at all. What I'm actually after is some kind of command-line SQL client - does Hypersonic have one? I know it's got that applet for administration (does that even come as part of the Orion install?) but I don't want to fire up a browser or mess around with appletviewer unless I have to. I do have a homebrew client but it was written against Oracle so I don't know (yet) what'll be involved in getting it to work with Hypersonic... thanks Jules
RE: Orion Team Needs New List Software
The problem is not the autoresponder. It is the mailing list software that Orion uses, which appears to be years behind more common mailing list software. tim. I suspect that the person the mail is from is not responsible, obviously moved on and someone at the company set up the autoresponder. We do that here when we have people leave. Be bad business to lose a customer because email wasnt replied to wouldnt it? Al -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Jeff Schnitzer Sent: Wednesday, March 14, 2001 4:29 PM To: Orion-Interest Subject: Orion Team Needs New List Software Someone desperately needs to replace the list software currently hosting the Orion-Interest mailing list. This is really getting out of hand. It's bad enough that everyone who posts gets messages like this from natch.se... but now they're echoing to the list as well.
Re: Design Advice (And Orion JNDI syntax) Needed
Have you considered placing the string in the database? tim. Hello; Problem: My application has many text strings (i.e. email messages, email recipient addresses, canned messages, etc) that both my servlets and EJBs need to access. It needs to be done in a way that these are not hardcoded and can be accessed easily from servlets, ejbs, and possibly even standalone applications. My Solution: Have a MessageResources object that is created by a startup servlet that contains all these strings. You can then use a MessageResources.getValue(String) to get the desired string you want. This is all done, the startup servlet runs, reads in the XML file, and creates the MessageResources. My Problem: I now need a way to pass that MessageResource object into scope so it is accessible by Servlets and EJBs (I'll worry about standalone applications later). However, I somehow need a way for the Stateless session bean to get this MessageResource object. I can't do StartupServlet.getMR() because the EJBs might be remote. Is it possible to use JNDI and store an object? IF that is the case, then I could do something like this in my stateless session bean: public String getMessage(String key) { if (messageResources == null) { // lookup messageResources with JNDI } } How would I do this in OrionServer? I believe it is app server specific, right? Does anyone have any input? Is it the right way to do it? This must be a common problem (global variables needed). How is everyone else doing this?
Re: SSL Certificates + Security Alert
Q: do i get the dialog window appearing because i'm using a test certificate? i.e. will the use of a live certificate mean that i don't get the dialog window appearing? Yes, *if* the certificate chain of that certificate leads to a root certificate that is installed in the user's browser. tim.
RE: new error... never seen this.
The newline between the "{% and %@ include file" causes a println to be generated and sends output the to client, which precludes the jsp:forward from working because forwards only work before you generate output. I think if you eliminate this newline, the problem will go away. tim. %@ page ... % % if (request.getParameter("checkpage").equals("page2")) {% %@ include file="page2.jsp" % %} else ... % --- page2.jsp: %@ page ... % % do a database update % jsp:forward page="page1.jsp" jsp:param name="checkpage" value="page2" / /jsp:forward
Re: How to set orion to perform a timely task.. (CRON???)
One way is to write a simple Java program that uses URLConnection to hit your JSP page and have CRON drive your simple program. tim. Someone suggesting hitting a JSP with a cron... how can you hit a URL with a CRON or AT command, I didn't think you could do that! Perhaps I misunderstood the explanation? R Robert S. Sfeir Director of Software Development PERCEPTICON corporation San Francisco, CA 94123 w - http://www.percepticon.com/ e- [EMAIL PROTECTED] t - (415) 749-2900 x205
RE: classloader does not implement getResourceAsStream ?
This line (about line 881 in my version): URL url = this.getClass().getResource(registrations[i+1]); Must be replaced by this: URL url = getServletContext().getResource(registrations[i+1]); Gee, that makes it look like a bug in Struts, as opposed to the reported bug in Orion. I believe that your patch is considered the "valid" way to get a resource in a J2EE servlet environment, is it not? tim.
Re: AW: Java ftp
There is also a nice FTP package at: http://www.gjt.org/servlets/JCVSlet/list/gjt/com/fooware/net tim. Multithreaded FTP-Bean (OpenSource IBM). Would not reccommend it in a EJB-Class, since it seems to be multithreaded. http://www10.software.ibm.com/developerworks/opensource/cvs/ftp/ Manfred Regele ADIG Investment GmbH 22 MethodenTools Richard-Reitzner-Allee 2 85540 Haar Tel: 089/46268-308 mailto:[EMAIL PROTECTED] http://www.adig.de -Ursprüngliche Nachricht- Von:John Miller [SMTP:[EMAIL PROTECTED]] Gesendet am:Freitag, 2. März 2001 10:48 An: Orion-Interest Betreff:Java ftp Off topic, but does anyone know a way of using Java for FTP'ing? Johnny BUY YOUR 2001 ISA AT INTERACTIVE INVESTOR'S NEW ISA CENTRE - visit http://www.iii.co.uk/isa for a choice of 400+ funds, market leading discounts and access to expert advice. FANCY A FREE ISA? Enter our competition now at http://www.iii.co.uk/isa Terms and Conditions apply and are available online. Issued by Interactive Investor Trading Limited, regulated by the SFA.
Re: mail.jar POP3
If you upgrade the mail.jar to JavaMail 1.2, the POP3 provider is included. Replacing mail.jar is most likely your easiest route. Otherwise, you have to deal with the javamail.providers file, which will almost certainly require that you modify mail.jar's version of that file. tim. Hello, I'm trying to add POP3 functionality to my application on orion. Unfortunately, the mail.jar that ships with orion does not include the POP3 provider. Does anyone know how I can enable the POP3 provider from Sun without replacing, or otherwise having to modify the existing mail.jar? Thanks, Andre Machines should work. People should think. -- IBM motto
Re: Connecting to LDAP from Orion
Go to http://java.sun.com/products/jndi/ and download the LDAP service provider. This will give you the JNDI SPI you need to access LDAP. As for docs/tutorials, I can not help you there. tim. Hi all, Today I tried to connect to a LDAP server so I tried some things for a while, but no luck... Has anyone done this before? Do you know of some docs/tuts from which I can learn how to do this? thanks! franklin
Re: orion.jar needed for JNDI-lookup??
Stefan, Are you sure about the InitialContext class being loaded over the network? I have never heard of that before, and was not aware that JNDI supported this feature. Can you point to any documentation of the feature? I have always understood that the JNDI properties pointed to the class to be used, and that the class had to be accessible via the ClasPath. thanks, tim. Hi Ernst, there is no superclass since InitialContextFactory is an interface which is implemented by ApplicationClientInitialContextFactory directly (so every vendor provides his own InitialContextFactoryClass...) It should work like this: when the class is needed it should be loaded by the class loader over the net (this is a basic principle of JNDI: load the "driver" which is needed for current application, if not already installed on the client). To be more specific with my error: I get an error from the java.net.URLClassLoader which says he(she...?) can't find the specific class (ClassNotFoundException). Did I miss some setup somewhere ... ? Greetings, Stefan - Original Message - From: "Ernst de Haan" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Wednesday, February 28, 2001 3:54 PM Subject: Re: orion.jar needed for JNDI-lookup?? Hi Stefan, we are running a Swing-application accessing via HTTP/RMI to an EJB-server. To do the JNDI-lookup class "com.evermind.server.ApplicationClientInitialContextFactory" is used as describes in the orion-doc. Do you *need* to downcast to ApplicationClientInitialContextFactory, or can you perhaps use a superclass (InitialContextFactory) ? If so, then you only need the JNDI libraries. -- Ernst
Re: Invalid manifest format I/O Exception?
Do you add the manifest to the jar file using jar's '-m' option? tim. When I try to invoke my application-client through: "java -jar application.jar" I get "invalid manifest format: I/O Exception? I have a META-INF/MANIFEST.MF, both inside the "application.jar" and in the working directory. The manifest file is: ___ Manifest-Version: 1.0 Created-By: Ant 1.2 Main-Class: com.cmc.ejb.member.MyClient ___ The application runs fine if I extract the jar file, though. I'd appreciate any tips on why this could be happening. Thanks Satish Gupta __ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/
RE: simple JSP bug with switch
OK, thanks, I understand that (which is how I fixed the code). However, I believe this isn't the proper behaviour for JSP. Orion should eat that newline. This is how other JSP engines behave, including Sun's reference engine. Seems that this would depend entirely on the JSP spec. If newlines have "significance", then Orion is right and the reference implementation is broken. Unless the spec further stated that newlines between "certain code segments" would be ignored. It shouldn't break the java code by inserting an erroneous println... or am I smoking crack? You may be smoking crack - users are often the last to know. tim. adam -Original Message- From: Nick Newman [mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 27, 2001 11:40 AM To: Orion-Interest Subject: Re: simple JSP bug with switch Hi Adam, I don't think this is a bug, although I agree the messages are confusing. Set the development="true" flag in the orion-web.xml and you get the reason explained more fully. Basically what you have written in the broken version produces code like this: switch(1){ // write a new line (but can't be reached!) case 1: // write newline, "One", newline break; // write a new line (but can't be reached!) default: // write newline, "Default", newline break; // write a new line (but can't be reached!) } and the compiler complains (correctly) that some of the copde can't be reached. Nick Newman At 08:11 PM 2/26/01 -0500, you wrote: Forgive me if this is a known bug, but I didn't see it in the FAQ or anywhere on orionsupport.com. I am using Orion 1.4.7 and I have tried having Orion use Jikes 1.12 as well as all three of the 1.30 JDKs {Sun,IBM,Blackdown}. This is all running on RedHat 7.0 Linux 2.4.2. fixed version (but I shouldn't have to do this...): % switch(1) { case 1: % One % break; default: % Default % break; } % broken version: % switch(1) { % % case 1: % One % break; % % default: % Default % break; % % } % Gives the following error (this is the Blackdown error, but they're all similar) 500 Internal Server Error Error parsing JSP page /jsp/test.jsp Syntax error in source /jsp/test.jsp.java:29: 'case', 'default' or '}' expected (JSP page line 3) if(__coreOut == out) __coreOut.write(__staticContent, 0, 1); ^ /jsp/test.jsp.java:29: 'case', 'default' or '}' expected (JSP page line 3) if(__coreOut == out) __coreOut.write(__staticContent, 0, 1); ^ /jsp/test.jsp.java:30: 'case', 'default' or '}' expected (JSP page line 3) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 0, 1, null); ^ /jsp/test.jsp.java:35: 'case', 'default' or '}' expected (JSP page line 4) if(__coreOut == out) __coreOut.write(__staticContent, 1, 5); ^ /jsp/test.jsp.java:36: 'case', 'default' or '}' expected (JSP page line 4) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 1, 5, null); ^ /jsp/test.jsp.java:38: 'case', 'default' or '}' expected (JSP page line 4) break; ^ /jsp/test.jsp.java:41: 'case', 'default' or '}' expected (JSP page line 6) if(__coreOut == out) __coreOut.write(__staticContent, 6, 1); ^ /jsp/test.jsp.java:42: 'case', 'default' or '}' expected (JSP page line 6) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 6, 1, null); ^ /jsp/test.jsp.java:47: 'case', 'default' or '}' expected (JSP page line 7) if(__coreOut == out) __coreOut.write(__staticContent, 7, 9); ^ /jsp/test.jsp.java:48: 'case', 'default' or '}' expected (JSP page line 7) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 7, 9, null); ^ /jsp/test.jsp.java:50: 'case', 'default' or '}' expected (JSP page line 7) break; ^ /jsp/test.jsp.java:53: 'case', 'default' or '}' expected (JSP page line 9) if(__coreOut == out) __coreOut.write(__staticContent, 16, 1); ^ /jsp/test.jsp.java:54: 'case', 'default' or '}' expected (JSP page line 9) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 16, 1, null); ^ 13 errors
RE: simple JSP bug with switch
It appears to me that Sun's RI is recognizing the "obvious" - that statements can not appear between "switch" and "case", nor between "break" and "case". Unless the spec specifically addresses this, it seems that Orion is doing the correct thing, and Sun is providing a nicety that lulls one into writing bad JSP code. tim. Sorry if I didn't quite get your point. It's odd though. The spec VERY specifically says that whitespace must be preserved (JSP 1.1 spec, section 2.1.6), so it seems to me that what Orion is doing is correct, even if it seems inconvenient. If I write: % out.print("one"); % % out.print("two"); % then my reading of the spec says that I must get the two words printed on different lines (which I believe Orion would do), whereas you seem to be saying that Sun's RI would print "onetwo". Or is Sun's RI somehow clever enough to know the difference between my sample and yours? That would take some clever examination of what's in the scriptlets, I would think. Nick Newman At 04:58 PM 2/27/01 -0500, you wrote: OK, thanks, I understand that (which is how I fixed the code). However, I believe this isn't the proper behaviour for JSP. Orion should eat that newline. This is how other JSP engines behave, including Sun's reference engine. It shouldn't break the java code by inserting an erroneous println... or am I smoking crack? adam -Original Message- From: Nick Newman [mailto:[EMAIL PROTECTED]mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 27, 2001 11:40 AM To: Orion-Interest Subject: Re: simple JSP bug with switch Hi Adam, I don't think this is a bug, although I agree the messages are confusing. Set the development="true" flag in the orion-web.xml and you get the reason explained more fully. Basically what you have written in the broken version produces code like this: switch(1){ // write a new line (but can't be reached!) case 1: // write newline, "One", newline break; // write a new line (but can't be reached!) default: // write newline, "Default", newline break; // write a new line (but can't be reached!) } and the compiler complains (correctly) that some of the copde can't be reached. Nick Newman At 08:11 PM 2/26/01 -0500, you wrote: Forgive me if this is a known bug, but I didn't see it in the FAQ or anywhere on orionsupport.com. I am using Orion 1.4.7 and I have tried having Orion use Jikes 1.12 as well as all three of the 1.30 JDKs {Sun,IBM,Blackdown}. This is all running on RedHat 7.0 Linux 2.4.2. fixed version (but I shouldn't have to do this...): % switch(1) { case 1: % One % break; default: % Default % break; } % broken version: % switch(1) { % % case 1: % One % break; % % default: % Default % break; % % } % Gives the following error (this is the Blackdown error, but they're all similar) 500 Internal Server Error Error parsing JSP page /jsp/test.jsp Syntax error in source /jsp/test.jsp.java:29: 'case', 'default' or '}' expected (JSP page line 3) if(__coreOut == out) __coreOut.write(__staticContent, 0, 1); ^ /jsp/test.jsp.java:29: 'case', 'default' or '}' expected (JSP page line 3) if(__coreOut == out) __coreOut.write(__staticContent, 0, 1); ^ /jsp/test.jsp.java:30: 'case', 'default' or '}' expected (JSP page line 3) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 0, 1, null); ^ /jsp/test.jsp.java:35: 'case', 'default' or '}' expected (JSP page line 4) if(__coreOut == out) __coreOut.write(__staticContent, 1, 5); ^ /jsp/test.jsp.java:36: 'case', 'default' or '}' expected (JSP page line 4) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 1, 5, null); ^ /jsp/test.jsp.java:38: 'case', 'default' or '}' expected (JSP page line 4) break; ^ /jsp/test.jsp.java:41: 'case', 'default' or '}' expected (JSP page line 6) if(__coreOut == out) __coreOut.write(__staticContent, 6, 1); ^ /jsp/test.jsp.java:42: 'case', 'default' or '}' expected (JSP page line 6) else com.evermind.server.http.EvermindJSPWriter.writeBytes(out, __staticContent, 6, 1, null); ^ /jsp/test.jsp.java:47: 'case', 'default' or '}' expected (JSP page line 7) if(__coreOut == out) __coreOut.write(__staticContent, 7, 9); ^ /jsp/test.jsp.java:48: 'case', 'default' or '}' expected (JSP page line 7) else
Re: Intro to Orion Tutorial
James, Very nice work! You have made a great contribution. tim. I don't know about everyone else, but I had a real difficult time getting started with Orion (coming from WebLogic). It seemed like I was stumped at every turn. I know there are a few tutorials, but I found them difficult to follow. Plus, I would rather use standard utilities like Sun's deploytool, rather than something like Ant. I really like Orion and I would hate to see people turned off from it just because they can't get it to work right away. For newbies, it's really more of a problem with the complexity of J2EE than anything Orion-specific, or at least it seems that way to me. For us WebLogic users, it is because we are used to the very non-standard way WebLogic does things. ;) That is why I decided to write up my own little Orion tutorial. For now, it can be found at the following URL: http://www.4degreez.com/intro.html I wanted to write a tutorial that even a J2EE newbie could follow. It shows how to use Sun's deploytool to assemble the application, followed by the ultra-simple instructions for deploying it on Orion. I just typed it up now, and tested the code. But it's definately a little sloppy in some places, and I hope I got all the terminology right. I was hoping some of you could take a look and comment, and then eventually maybe it could be posted on orionsupport. I tried to copy their style a bit. I intend to write a Part 2 to this tutorial, explaining helper classes and how to connect to Oracle...which is another common question here, and one that I've asked about myself! Well, what do you think? _ Get your FREE download of MSN Explorer at http://explorer.msn.com
RE: Win2k Pro. is mess... choosing the right database product
MySQL has "support" for transactions. However, I think you have to download a special build of MySQL, and it is only supported for berkley db tables. This is a stop gap measure until 4.0, which will have much better tx support. tim. You are probably right in your asumptions. Might I ask why you have chosen to go for PostgreSQL? To me it seems a bit too uncertain to have two pieces of experimental software in one project. Personally I was thinking of switching to either MySQL or Interbase once my system goes on-line. I have used Interbase quite a lot, just not with EJBs, and it is totally free and open source nowadays. I have no experience with MySQL, but as far as I have read on this list, quite many people are fond of it, and it seems that the use of MySQL is a question of once needs for transactions (which MySQL does not support). I am wondering if anyone is using the prepackaged Hypersonic database in production... It has not given me any trouble during this development project... yet... - I would feel MUCH better about using a 10+ years old well-tested database like Interbase, and I simply do not know why more people are not using it. Any comments anyone? Randahl -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED] Sent: 23. februar 2001 18:39 To: Orion-Interest Subject: Re: Win2k Pro. is messing up the DB Hello Randahl, First of all, I appreciate your idea. Yes, we came to the near conclusion that it was not orion but it was postgresql. To tell the truth, I believe in orion but not very much so in postgresql. As a matter of fact, we are using a CVS version of PostgreSQL because the released version of postgresql does not yet support the right join sql statement. To make matters worse, the Linux JDBC driver was not working properly on the timestamp field before I made a modification on the driver. We were totally forgetting all about this. Our Windows developers have had no problems with ODBC drivers so far, out of which we can guess it is not the DB itself but it is the Linux JDBC driver. What are your thoughts? Once again, thank you very much. Simon - Original Message - From: Randahl Fink Isaksen To: Orion-Interest Sent: Friday, February 23, 2001 1:07 AM Subject: RE: Win2k Pro. is messing up the DB I know this is a wild guess, but just to make sure, I would of course do a disk scan on that machine to make sure it is not a hardware problem - these things do happen, I am afraid. Another good thing would be to run the application on a _different_ Win2K Pro. machine to make sure it is not just something which is specific to only her single machine. BTW, I would doubt PostgreSQL more on Win2K than I would doubt Orion. Orion is a java application, which gives it a pretty good chance of running in the same way on different platforms. To the best of my knowledge PostgreSQL on Win2K is a port of the code from another platform, and from reading articles at PostgreSQL's web-site it seems it is not totally stable on Win2K. I have seen at least two posts on this list where people recommends *not* using PostgreSQL from Win NT based systems - not yet, anyway. I have used Orion on Win2K with no problems - but then again I do *not* use PostgreSQL Hope you find a solution Yours Randahl -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED] Sent: 23. februar 2001 02:19 To: Orion-Interest Subject: Win2k Pro. is messing up the DB Hello, I do not really know if this is because she's using Window 2000 Professional. All our employees use Windows 2000 Servers or Linuxes or Solarises except for one person. The exception is Windows 2000 Professional. The problem occurs only at her computer. Once she updates a DB record, it messes up another record. This does not happen all the time, but once in a blue moon. This is why I can't catch the problem in my code. And I do not think it is my code. I am using CMPs and orion 1.3.8 with PostgreSQL. I doubted postgresql and orion in the beginning, and now I narrowed it down to orion because it may be machine specific as I mentioned earlier. Why does a DB server have to do with a specific machine? Then what? An App. Server which holds a session to a machine? I am lost. Does anyone have any clue? I really really hope it's my code. I appreciate your attention. Simon
Re: JAXP
Hi Rich, Could you narrow it down? Specifically which JAR breaks Orion. We have replaced the xalan.jar and xerces.jar files with version 1.2.2 and Orion is happy. Is it just the jaxp.jar file that is the issue? Also, I believe that somewhere in the mailing list archives, you will find posts related to JAXP, but I do not know if they will address your specific question. tim. I have been working on this problem all day. I have posted once before and no one responded. I will try again. I'm no Java expert and this is just my ignorance, but can anyone tell me if I'm correct in my assumptions on this. I am trying to develop server side code that runs under Orion that uses the JAXP code that Sun has recently released. There are different versions of parser.jar, xalan.jar and jaxp.jar distributed with Orion. Older ones. I have tried replacing the older ones with the newer ones because my code requires the newer ones and I guess that my code will be running in the same image as Orion. Orion fails to start due to an exception while trying to parse its configuration files. Putting the old .jar files back, it works again. So, now it occurs to me that I'm basically stuck running with whatever version of support code the tools I'm using are dependent on. If I'm right, that means I can't use the latest version of JAXP until Orion does? Is that right? Anyone? Thanks, Rich
RE: JAXP
[Loaded java.lang.NoSuchMethodError from C:\Program Files\JavaSoft\JRE\1.3\lib\r t.jar] java.lang.NoSuchMethodError at org.apache.crimson.tree.AttributeSet.init(AttributeSet.java:139) Richard, do you have the source code for that line it is croaking on? tim.
RE: Get me off this subscription!!!!
Folks, Orion has responded to this request at length. The response was simple. If you can't remember the email address you subscribed to the list with, how are they going to figure it out? If you use the unsubscribe form, and it does not work, then guess what? You are trying to unsubscribe the wrong address. This problem is your responsibility, not Orion's (that is my opinion, not Orion's). This is a general problem with mailing lists. The only thing that I would recommend to Orion is that some mailing list software can append the user's email address to the message as it is sent out. This way, the user can just go to the end of the message to find the address they need to unsubscribe. This would be a very nice enhancement. tim. Hmmm... has anyone told http://www.mail-archive.com/ about the unsubscription problem - if not I think it is about time, so if noone replies to this e-mail, saying they have already done so, I think I will send and e-mail to http://www.mail-archive.com/ in hopes the problem will be solved. But hey, I am sure somebody from the Orion team will send me a reply saying they are already taking care of this problem in concern of the Orion Server customers... R. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Adamson, Scott Sent: 22. februar 2001 06:40 To: Orion-Interest Subject: RE: Get me off this subscription I just tried the 'unsubscribe' form on the website and it even sent me a nice assuring comfirmation that I had been unsubscibed, no good. I guess I have to have the mail blocked or set up a new email acct. -Original Message- From: Allen Fogleson [mailto:[EMAIL PROTECTED]] Sent: Thursday, February 22, 2001 12:32 PM To: Orion-Interest Subject: RE: Get me off this subscription did you try the website, enter your email and press submit? it worked fine for me when I switched jobs and had to use a new email. Al -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Steve Johann Sent: Wednesday, February 21, 2001 12:43 PM To: Orion-Interest Subject: Get me off this subscription I have tried all your recommendations to get off your subscription list. Come on guys! __ Do You Yahoo!? Yahoo! Auctions - Buy the things you want at great prices! http://auctions.yahoo.com/
Re: http 500 errors
Once you run your app, go to the application-deployments directory and into the directory for your application. In there you will find a file named orion-application.xml. Add something like this to that file: log file path="application.log" / /log I keep getting internal server errors (HTTP 500), where do I go to debug this? Which log file has this stuff? I need a stacktrace! It's not popping up on the console, and I couldn't find it in any of the obvious .log files. Thanks in advance...
RE: FAQ-O-MATIC (was: EJB Clustering -- ANYONE? [Urgent!])
More than anything else, though, I think Orion needs a FAQ-O-MATIC. Seconded!
Re: Test20Cmp / Jim Archers example
I am not certain about Jim's example. However, we use this style of code to null out "transient" fields that get filled in during the use of an entity bean. The problem is that these fields are not "cleared" between passivation and re-activation. Thus, you can have fields with invalid values from a pervious incantation of the bean. Clearing these fields solves that problem. tim. I just read Arhcer's Test20Cmp example (posted on this list earlier on). I am unaware of the need for the initToNull() method (see below); does anyone know why its there - its is repeated in the later examples aswell. Well, I know at least one guy who knows... but if anyone else but Jim himself knows, you are of course also very welcome to reply ;-). Thanks. Randahl public String ejbCreate() { trace("ejbCreate() entered"); initToNull(); setUserId("jarcher"); setFirstName("Jim"); setLastName("Archer"); setEmail("[EMAIL PROTECTED]"); trace("ejbCreate() exiting"); // In CMP, should return null. return null; } // private void initToNull() { trace("initToNull() entered"); setUserId(null); setFirstName(null); setLastName(null); setEmail(null); trace("initToNull() exiting"); }
Re: Servlet Method size limit? -- Illegal target of jump or branch
This has been discussed before, so there are postings in the archive. The problem lies in the Class files themselves. Java Class files have 16 bits limitations, as well as others. The primary issue appears to be the large number of string constants generated by JSP pages. I believe that workarounds were suggested in the previous postings. tim. I get the following error using Orion 1.4.7 w/ JDK 1.3 on Redhat. Error creating jsp-page instance: java.lang.VerifyError: (class: __jspPage11_register_regstep2_jsp, method: _jspService signature: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletRespo nse;)V) Illegal target of jump or branch It is due to a large JSP file (mainly due to a lot of tags, not a lot of logic). If I start eliminating some of the tags (doesn't matter which ones) the problem goes away. I've tried increasing my JVM heap. No luck. Where is this limitation coming from? My JVM? Orion? The only way to get around it that works is by writing taglibs to eliminate the amount of code in the JSP. Any other suggestions?
RE: ms access Orion?
However, MySQL support has not always been that "first class". I can remember the days when MySQL support was much like Orion support today - you needed the mailing list! Lets hope that Orion can make the same transition to providing strong support. tim. If you use mysql, I think you need to compile the Berkeley engine first to get transaction support. Please query MySQL on this, if you need to use transactions. Their support and documentation is first class (are you taking notes here Orion? There is a quiz next week). -Original Message- From: faisal [mailto:[EMAIL PROTECTED]] Sent: Thursday, February 15, 2001 5:06 PM To: Orion-Interest Subject: Re: ms access Orion? Thank to all of u guys I have not been using BMP before and when i tried ms access it gave me a hard time though i works sometimes Thanks to your advice I am going to try MySQl for the moment Respect what a Great e-mailing list faisal - Original Message - From: Thomas mailto:[EMAIL PROTECTED] Pridham To: Orion-Interest mailto:[EMAIL PROTECTED] Sent: Thursday, February 15, 2001 7:01 PM Subject: RE: ms access Orion? Two other free RDMS's are: 1. Interbase (http:// www.interbase.com http://www.interbase.com ) - originally developed by Borland, now open source. I am using this product in a commercial environment. It is a bit unstable on Linux, but runs great on Win2000. This DB has a JDBC client. This is a cross platform DB. 2. SAP DB ( http://www.sap.com/solutions/technology/sapdb/ http://www.sap.com/solutions/technology/sapdb/ ) - open sourced by SAP. I have not worked with this DB yet, but I will soon. This DB also has a type 4 JDBC driver. This is a cross-platform DB. Both of these databases "appear" to be industrial strength :) -Original Message- From: Kemp Randy-W18971 [mailto:[EMAIL PROTECTED]] Sent: Thursday, February 15, 2001 10:32 AM To: Orion-Interest Subject: RE: ms access Orion? Is ms access considered an RDMS and does it have a JDBC driver? If so, then it should be theoretically possible to have it work with Orion. But why would you want to do this? A better solution would be to work with something like Postgresql ( www.postgresql.org http://www.postgresql.orgom ) or Mysql ( www.mysql.com http://www.mysql.com ), if you don't have a commercial database (like Oracle) available. -Original Message- From: faisal [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 14, 2001 9:55 PM To: Orion-Interest Subject: ms access Orion? does ms access work with Orion ?
Re: SV: Not authorized to view this page
Orion's performance relative to other J2EE products is debatable, but I believe it is at the very top, if not the fastest. In addition, Orion is pure Java, so it is very portable (I actually develop on my Win98 laptop). I wanted to follow up and expound on this last parenthetical comment. I can't say enough about being able to run our entire application on a single Win98 box! It means that we can setup a demo on a portable PC, and have a marketing person show up at a meeting and run a full demo from that portable. We do not need an internet connection, nor a $10,000 machine. Also, this means that developers can take work home with them, and not worry about their connection to the office. It also means that developers can work complete independent of each other, without stepping on eachother with every little change to the deployment. If Orion were used only for development and demos, and your application was then deployed on a different app server, I think it is worth the $1500! tim.
Re: Last posting
Cliff, I think your posting was sufficiently complex and general that it was unlikely to generate a reponse. Speaking for myself, but suspecting that it applies to other "professionals", I am very busy, and do not have the time to devote to such a response. Sorry. However, I believe you would be more likely to get a reply if you try asking specific questions. tim. -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Pardon me if I sound a little rude, but since not a single person has even acknowledged my last post, do I assume that (a) noone cares or (b) noone knows? I am very keen to get started, and very keen to evaluate the various avenues open to us, and I had expected a commercial application to have a reasonably professional following. Perhaps I was mistaken and I should look elsewhere? Cliff Rowley -BEGIN PGP SIGNATURE- Version: PGPfreeware 7.0.3 for non-commercial use http://www.pgp.com iQA/AwUBOosbgApjs58+bOhlEQKwigCgnaxMsVQAHoiFpkfbNk48fqTDWXsAoMNy HxbYNGGXjPNB/neGWBPbq8yf =RK40 -END PGP SIGNATURE-
RE: VARCHAR values are always the length of the field
I do not think that JDBC is inherently the issue here. Think about it - if the JDBC-ODBC bridge is faster than the JDBC driver, how can that be? They are both based on JDBC, and the bridge has ODBC in the processing as well. Thus, I would conclude that the Merant JDBC driver is poorly written. In general, performance is often determined mostly by the database server's connection protocol, not JDBC. I have confidence in JDBC. tim. I don't have faith in the JDBC-ODBC bridge (it IS a piece of crap with lot's of bugs etc.). Yet, I was surprised to find that the JDBC-ODBC bridge was actually much faster than the Merant pure-java thin driver for SQL Server!! (very disappointing as I was expecting the performance to be better!) -this was the case with Oracle's JDBC drivers also - except that the difference was much less. Didn't give me much confidence about the performance of JDBC :-(( Chandika -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Victor A. Salaman Sent: Wednesday, February 14, 2001 10:53 AM To: Orion-Interest Subject: RE: VARCHAR values are always the length of the field I have some thoughts... don't be cheap and get rid of that piece of crap ODBC-JDBC bridge... buy a real jdbc driver. - peace - Victor! -Original Message- From: Michael S. Kelly [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 14, 2001 2:34 PM To: Orion-Interest Subject: VARCHAR values are always the length of the field Here's the problem, when I get a datasource like this: // Error trapping removed for clarity. Context initCtx = null; initCtx = new InitialContext(); String dsName = "jdbc/MSSQLTimecardDS"; DataSource ds = initCtx.lookup(dsName); and use it to return a ResultSet containing a VARCHAR field, the getString method always returns a String containing spaces filling out the String to the entire lengthe of the VARCHAR field, i.e. if I have a VARCHAR(50) field I get a String 50 characters long regardless of how much text is actually stored in the field. This does not happen when using a CMP to access the same table and does not happen when I create a Connection using a DriverManager instead of a DataSource. I'm using the ODBC-JDBC bridge against SQL Server. Here's my DataSource definition: data-source name="MSSQLServerTimecard" location="jdbc/MSSQLCoreTimecardDS" xa-location="jdbc/xa/MSSQLXATimecardDS" ejb-location="jdbc/MSSQLTimecardDS" connection-driver="sun.jdbc.odbc.JdbcOdbcDriver" url="jdbc:odbc:Timecard" username="sa" password="" inactivity-timeout="30" class="com.evermind.sql.DriverManagerDataSource" / and my database-schema mappings: database-schema name="Microsoft SQL Server" not-null="not null" null="" primary-key="primary key" type-mapping type="java.lang.String" name="varchar (50)" / type-mapping type="float" name="float" / type-mapping type="double" name="float" / type-mapping type="byte" name="smallint" / type-mapping type="char" name="char" / type-mapping type="short" name="int" / type-mapping type="boolean" name="bit" / type-mapping type="long" name="int" / type-mapping type="java.io.Serializable" name="varbinary" / type-mapping type="java.sql.Timestamp" name="datetime" / disallowed-field name="password" / disallowed-field name="username" / disallowed-field name="date" / disallowed-field name="text" / /database-schema I've tried changing the mapping to String to "varchar" (leaving out size parameter), but this didn't help. Any thoughts? -=michael=-
RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root?
Does Saxon solve this particular issue? If so, how? Thanks, tim. We have observed this behaviour with Xalan (1.2.x family) both in and outside of app servers. Xalan uses the "working directory", according to Java, as the base URI. Which is of course wrong. Dunno about Xalan2. Possibly fixed. In any case I'm planning to switch over to Saxon. Regards, Arved Sandstrom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Dan Cramer Sent: Tuesday, February 13, 2001 4:54 AM To: Orion-Interest Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? Check out the XSLT spec at http://www.w3.org/TR/xslt#include. According to the spec, in an xsl:include tag, a relative URI as the value for the href attribute should be interpreted as starting in the same directory as the including stylesheet. Example: assume that a stylesheet /www/xsl/A uses the tag: xsl:include href="B", then the XSLT engine should include the stylesheet /www/xsl/B. If this isn't what you're seeing, then your processor has a bug. This might help more than my suggestion before :-) Dan Cramer Chief Architect Dynamic Resolve, LLC Internet Solutions Consulting -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Duffey, Kevin Sent: Monday, February 12, 2001 5:47 PM To: Orion-Interest Subject: Why xsl:include seems to try to find files in /Orion folder and not web-app root? Hi, When I use the xsl:include.. directive, it appears to look in server root dir, and not the web-app root its deployed in. I am not quite sure if this is something to do with Orion, or if all servers operate in this manner and therefore its an error of the XSLT technology. Or..perhaps its an error of the saxon library I am working with. Just wondering if anyone working with Orion and XSL have seen this problem or not? Thanks.
Re: Garbage collection, out of memory
Your GC times are huge because you have provided so much memory. If you reduce the 500MB to 128MB, you will see more GC's, but they will be much shorter. This is a well known optimization issue. Too little memory causes to many GC runs, while too much memory causes GC runs to be too long. You need to experiment to find the best amount of memory to allocate. tim. Hello We are experiencing a garbage collection problem. We are running Orion 1.4.7 on a Linux 2.4 box. We have been trying the Sun 1.2.2, the Sun 1.3 and the IBM JVM 1.3. On the Sun 1.3 JVM we have tried normal garbage collection and also -Xincgc incremental garbage collection. We run with 500 megabytes of heap space available to Java. The system uses lots of EJBs (mainly stateless session but also quite a few entities and a handful of stateful session beans), and we have JSP pages which run in the same JVM. The system runs very responsively and well, with up to 90 users simultaneously using it, for up to an hour. Then enormous GCs start happening which block all activity for up to 180 seconds at a time! The length and frequency of the freezes vary with the different JVMs but all are unusable after say an hour of up time. The Sun 1.3 in incremental GC mode is the best, and in fact remains stable and usable until it starts doing a few 9 second GCs from time to time (comparatively bearable) until we get a "HotSpot internal error" which stops all processing. We are trying all sorts of different things to stop our users getting upset, like reducing the JSP session timeout to a minimum, and are currently trying to analyse the code with JProbe to find out how to minimise unnecessary object creation or memory leaks (stale references to no longer used objects etc). As several list members have already said, it also seems that some beans are never passivated. What can we do to make Orion stop using more and more memory, and not to cause such outrageous garbage collection cycles? Any comments or suggestions would be very much appreciated. -- Thomas Munro [EMAIL PROTECTED] http://www.fullsix.com/ Fullsix Technology (Paris)
RE: Why xsl:include seems to try to find files in /Orion folder a nd n ot web-app root?
If you read the appropriate Xalan source code for xsl:include you will find that when there is no "base" specified for the XSL document, it uses the System property "user.dir", which is the directory in which you started Orion, or in your case C:\orion. Apparently, from the previous posting, setSystemId() can fix this. Also, you should probably use "./include/include.xsl", or "include/include.xsl" for your path, as opposed to the full path implied by the leading slash. tim. Alrighty fellas..I just got the latest 6.2 Saxon, put it in my www\WEB-INF\lib dir, and remove xalan.jar from Orion directory. When I do the following in XSL: xsl:include href="/include/include.xsl"/ It keeps telling me in the Orion window: Error at xsl:include on line 4 of file:/C:/orion/: \include\include.xsl (The system cannot find the path specified) Exception while trying to transform document. MESSAGE = Failed to compile stylesheet. 1 error detected. So I ask..why does it say its looking in file:/C:/orion/: ?? I made sure there isn't any saxon.jar or xalan.jar in the classpath, and Orion automatically picks up anything in the web-inf\lib dir (right?) as part of the packages accessible via the web-app classpath. So I am not sure why this is still happening. Is there a call I need to make to get the web-app local root? Or do I need to provide a hard-coded variable on every xsl page that is then used for this purpose? Thanks. -Original Message- From: Victor A. Salaman [mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 13, 2001 6:48 AM To: Orion-Interest Cc: Duffey, Kevin Subject: RE: Why xsl:include seems to try to find files in /Orion folder a nd n ot web-app root? Saxon 6.2 -Original Message- From: Rodrigo B. de Oliveira [mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 13, 2001 6:54 AM To: Orion-Interest Cc: Duffey, Kevin Subject: RE: Why xsl:include seems to try to find files in /Orion folder a nd n ot web-app root? And out of curiosity, which XSLT processor are u using then? Rodrigo -Original Message- From: Victor A. Salaman [ mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] ] Sent: Tuesday, February 13, 2001 2:47 AM To: Orion-Interest Cc: Duffey, Kevin Subject: RE: Why xsl:include seems to try to find files in /Orion folder a nd n ot web-app root? Orion should just replace Xalan for Saxon anyways... and use TraX instead of a propietary interface to Xalan... Xalan is Apache's excuse for having a XSLT processors, besides being one of the slowest in the crowd... -- Victor -Original Message- From: Tim Endres [ mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] ] Sent: Tuesday, February 13, 2001 1:07 AM To: Orion-Interest Cc: Duffey, Kevin Subject: Re: Why xsl:include seems to try to find files in /Orion folder and n ot web-app root? If you read the xalan source, you will see that this is a problem with xalan. The method that determines the location of the included file is written to be file-system and URL based. If has no concept of calling a method like "getRealPath()" to get a path relative to your webapp. The code is a mess. The xalan folks should rewrite this complicated code to simply call an interface that the programmer provides. Then your interface would be called to locate a file, allowing you to apply the getRealPath() method that you really want it to use. I am not sure if Xalan II addresses this or not. The only way Orion could fix this is to patch the xalan code, which I think would be a very bad idea. The way that we solved the problem was to pre-compile the xsl pages in place in our development tree, which presented XSL with a simple file-system to locate included files. We then load the compiled pages for XSLT processing. This also speeded up processing times. tim. Hi, When I use the xsl:include.. directive, it appears to look in server root dir, and not the web-app root its deployed in. I am not quite sure if this is something to do with Orion, or if all servers operate in this manner and therefore its an error of the XSLT technology. Or..perhaps its an error of the saxon library I am working with. Just wondering if anyone working with Orion and XSL have seen this problem or not? Thanks.
RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root?
I can't seem to find the email with the setSystemId(). Can you either forward it to me, or show me how you did it so I can try it out. Where is that set specifically? Thanks. Here it is. Not very detailed, but hopefully the clue you need. tim. -Original Message- From: Matt Krevs [EMAIL PROTECTED] Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? Date: Tuesday, February 13, 2001 12:29:21 AM EST To: Orion-Interest [EMAIL PROTECTED] Yes, we had this problem. I think its an XSL thing rather than an Orion thing. We are using Xalan and call XsltInputSource.setSystemId() to set the root directory for transformations
Re: JDBC/DataSource/JNDI Error
You need a proper jndi.properties file on your ClassPath. It will define the property 'java.naming.factory.initial', as well as others. These are needed by JNDI to find your InitialContext. tim. I have download a couple of MS SQL Server trial JDBC2.0 drivers including the free one from freetds.org. The data source I am trying to use looks like: data-source class="com.evermind.sql.DriverManagerDataSource" name="MyDatabase" location="jdbc/MyDatabase" xa-location="jdbc/xa/MyDatabase" ejb-location="jdbc/MyDatabase" connection-driver="com.internetcds.jdbc.tds.Driver" username="mydbuser" password="" url="jdbc:freetds:sqlserver://mydbserver:1433/mydatabase" inactivity-timeout="30" schema="database-schemas/ms-sql.xml" / data-source class="com.evermind.sql.DriverManagerDataSource" name="MYDB" location="jdbc/MYDBCoreDS" xa-location="jdbc/xa/MYDBXADS" ejb-location="jdbc/MYDBDS" connection-driver="com.inet.tds.TdsDriver" username="mydbuser" password="" url="jdbc:inetdae7:mydbserver:1433?database=mydatabase" inactivity-timeout="30" schema="database-schemas/ms-sql.xml" / I have tested out both these JNDI (ejb-location) names in the following code: import java.sql.*; import javax.naming.InitialContext; import javax.sql.DataSource; import java.util.*; class TestSQL { public static void main (String args[]) { try { // Obtain connection InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("jdbc/MYDBDS"); Connection connection = null; // Close connection - important! connection.close(); } catch(Exception e) { System.out.println("Error: " + e.getMessage() ); } } } Neither one of the JNDI database names ("jdbc/MyDatabase" or "jdbc/MYDBDS") work. Whenever I try to execute the code for the datasource, I get an error as follows: Error: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial Can anyone tell me what is going on?What is this problem and what can I do to correct the problem? Any help would be much appreciated! Thanks. Tom
RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root?
I think the problem is that you are opening the connection yourself. I think if you hand the URL String to the XsltInputSource constructor, and let it open the connection, then it will properly set the base. As it is, the source can not see the URL, and thus does not know how to set the base. tim. Hmm.. I am using the following code to read in the XSL. Its not the most efficient way..but it is how I am doing it. I am now starting to see that this must be the problem..although I am not sure why. StreamSource xslStream = null; StreamSource xmlStream = null; String urlPrefix = request.getScheme() + "://" + request.getServerName() + request.getContextPath(); try { URL url = new URL(urlPrefix + r.getXSL()); xslStream = new StreamSource(url.openConnection().getInputStream()); } catch(Exception e) { e.printStackTrace(System.out); System.out.println("Exception " + e.getMessage()); } // Transform the xml output using the xsl stylesheet and the XALAN XSLT // engine, placing the output stream of the transformation in the // HttpServletResponse output stream. response.setContentType("text/html"); // always assume HTML output from this controller try { URL url = new URL(urlPrefix + r.getName() + "?jsessionid=" + request.getSession(true).getId()); xmlStream = new StreamSource(url.openConnection().getInputStream()); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(xslStream); transformer.transform(xmlStream, new StreamResult(response.getOutputStream())); } This works as far as getting the first XSL page, but the included XSL page in the XSL page is not working very well. It appears I need to somehow pass the root path or something? I took most of this code out of an example of how to use the TrAX api to transform a document. I figured by using URL's to read in the xsl AND jsp (to get XML output), it would allow me to locate XSL pages anywhere on the web and still get to them. Does it appear something is flawed in this approach (or should I say..if you know of a better way to make this work, please elaborate if you can). Thanks. -Original Message- From: Arved Sandstrom [mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 13, 2001 1:07 PM To: Orion-Interest Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? It was an email from Matt Krevs. I threw in: File xsl = ...; // the stylesheet as a java.io.File XSLTInputSource stylesheet = new XSLTInputSource( new FileReader( xsl ) ); stylesheet.setSystemId( "file:" + xsl.getAbsolutePath() ); This works fine with Xalan 1.2.2. Regards, Arved Sandstrom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Duffey, Kevin Sent: Tuesday, February 13, 2001 4:29 PM To: Orion-Interest Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? I can't seem to find the email with the setSystemId(). Can you either forward it to me, or show me how you did it so I can try it out. Where is that set specifically? Thanks. -Original Message- From: Arved Sandstrom [mailto:[EMAIL PROTECTED]] Sent: Tuesday, February 13, 2001 12:07 PM To: Orion-Interest Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? I haven't looked at Saxon with respect to this particular issue. However, I went and looked at my copy of Michael Kay's book a few days ago, and he confirms the behaviour described in the spec. If you have used SAXON in any other way, and/or followed Mike on the Mulberry XSLT mailing list, you'll realize that here's a guy who is so up on XSLT that there is no way that he would allow this not to work. But, yeah, at the moment I'm guessing. :-) Also, there was the earlier suggestion to use setSystemId() on the stylesheet XSLTInputSource; I tried that and it worked out fine for fixing this problem (with Xalan). Regards, Arved Sandstrom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Tim Endres Sent: Tuesday, February 13, 2001 3:02 PM To: Orion-Interest Subject: RE: Why xsl:include seems to try to find files in /Orion folder and not web-app root? Does Saxon solve this particular issue? If so, how? Thanks, tim. We have observed this behaviour with Xalan (1.2.x family) both in and outside of app servers. Xalan uses the "working directory", according to Java, as the base URI. Which is of course wrong. Dunno about Xalan2. Possibly fixed. In any case I'm plannin
Re: classloader
This is not a bug. It is a lack of understanding of ClassLoaders by the poster you referred to in your search. If you search the Orion mailing list archives, you will see many postings related to this subject. The problem is that ClassLoader issues are more complicated in an application server environment, and the old Class.forName( String name ) technique for loading classes no longer applies. There was a posting by someone who has written a paper on ClassLoader issues. That posting is in the archives. I would strongly recommend that you read that paper, as it will clarify this issue for you. tim. I'm trying to use Class.forName in the startup of an application running in Orion. It simply does not work. Here is a piece of the code: System.out.println("Class to use for logging " + classtouse); Class classname = logclass; try { System.out.println("1"); logclass = Class.forName(classtouse); //logclass = Logging.class.getClassLoader().loadClass(classtouse); System.out.println("2"); } catch (ClassNotFoundException e) { System.out.println("3"); System.err.println("Could not find class " + classtouse); System.out.println("4"); System.err.println(e.toString()); System.out.println("5"); logclass = classname; System.out.println("6"); } System.out.println("7"); System.out.println("OK"); } catch (Exception e) { System.out.println("8"); System.err.println("Exception during parsing: " + e); } And what do we see when we start Orion with this application: Class to use for logging org.mmbase.util.logging.log4j.Log4jImpl 1 Orion/1.4.5 initialized You see, after '1' it simply stops, and we see in the log and when we try to see a page: java.lang.NoClassDefFoundError: org.mmbase.servlet.JamesServlet which does not make sense to me, because I'm sure that this class _does_ exist, and I dont' get this message if I cut away this specific code with 'forName'. I've searched with google, and found someone with the same problem, which was called a bug in orion by someone else: see http://www.google.com/search?q=cache:list.working-dogs.com/lists/turbine/Turbine%2520Digest%252002-13-00+forName+orionserverhl=en (would that URL be reliable?, well, a few cites from it: [[ Turbine class and other are loaded correctly with the servlet class = loader, But Class.forName() break this logic as it goes directly to the Global system class loader. Right. In that case, what should happen is this: Class.forName() is called in the scope of orion's custom classloader. The systemclassloader is then asked to find the class. When it can't find it, then the custom class loader should attempt to find the class. It sounds like this part is what isn't happening and is a bug in the orion classloader. I guess it is possible to hide the problem by modify the server = classpath but this is a dirty hack :( ... I am not familiar with Turbine code and I am not sure what is the right approach here, or if this is a problem. What do you think? Tell the people who make Orion to fix their broken classloader. This is a prime example of why people shouldn't write closed source servlet engines. ]] Was this a bug indeed? Is it solved? It there a workaround? Does anyone understand what I mean? Michiel -- Michiel Meeuwissen - NOS internet Mediacentrum kamer 203 - tel. +31 (0)35 6773065 http://www.mmbase.org http://www.purl.org/NET/mihxil/
Re: Why xsl:include seems to try to find files in /Orion folder and not web-app root?
If you read the xalan source, you will see that this is a problem with xalan. The method that determines the location of the included file is written to be file-system and URL based. If has no concept of calling a method like "getRealPath()" to get a path relative to your webapp. The code is a mess. The xalan folks should rewrite this complicated code to simply call an interface that the programmer provides. Then your interface would be called to locate a file, allowing you to apply the getRealPath() method that you really want it to use. I am not sure if Xalan II addresses this or not. The only way Orion could fix this is to patch the xalan code, which I think would be a very bad idea. The way that we solved the problem was to pre-compile the xsl pages in place in our development tree, which presented XSL with a simple file-system to locate included files. We then load the compiled pages for XSLT processing. This also speeded up processing times. tim. Hi, When I use the xsl:include.. directive, it appears to look in server root dir, and not the web-app root its deployed in. I am not quite sure if this is something to do with Orion, or if all servers operate in this manner and therefore its an error of the XSLT technology. Or..perhaps its an error of the saxon library I am working with. Just wondering if anyone working with Orion and XSL have seen this problem or not? Thanks.
Re: The best way to get the context path
Your context path can change depending on deployment. It is best to let the HttpServletRequest extract it from the URI. So the call to request.getContextPath() is your best bet. tim. where should I place the image filesPetr Podsednik wrote: img src="%=request.getContextPath()%/images/app-logo.gif" . - I know that you often need your own context path in order to return a correct link to some resource in your web-app, but is there not a better way than calling request.getContextPath() ? It seems odd to me to ask for the context path on the request object - I am looking for something like pageContext.getServletContext().getInitParameter("the application context path") but I have not been able find out how to make this work... Any comments / suggestions would be appreciated R.
Re: Too much caching? - the database has changed
You should not be changing the deployment folder files directly, except to check to see if something works. You should create your own orion-ejb-jar.xml file in your own EAR (or build directory if you deploy directly). Orion will then pickup your version of orion-ejb-jar.xml and add anything else that it needs, and place the result into application-deployments. tim. Thanks for the help Tim. I am not sure I like this solution. Why do I have to go and change this in the application-deployments folder? The same question applies to the table name for the CMP Beans. How do I choose a table name different than the default one without touvhign the application-deployments folder? Wouldn't make more sense if I can change these things in the "ejb-jar.xml" that is part of the EJB package? Danut At 08:55 PM 2/5/2001 -0500, Tim Endres wrote: Check the docs. There is a flag that you need to set to tell Orion that is does not have "exclusive" access to the database, and that it needs to recognize when a record is updated by a program other than Orion. I believe you need to look at the "exclusive-write-access" attribute of the entity-deployment element in orion-ejb-jar.xml. tim. Two more things. 1. On the server side I get the following CMPSelectTestEJB() setEntityContext ejbCreate( 10, Name 10, Address 10 ) Entity 10 passivated java.lang.Throwable at com.evermind.server.ejb.EntityEJBHome.ail(JAX) at com.evermind.server.ejb.EntityEJBObject.releaseContext(JAX) at CMPSelectTestHome_EntityHomeWrapper19.create(CMPSelectTestHome_Entity HomeWrapper19.java:377) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.bc.do(JAX) at com.evermind.util.f.run(JAX) ejbPassivate( 10, Name 10, Address 10 ) There is no record with ID = 10, name = "Name 10" and address = "Address 10". 2. The exactly same code for EJB, client and the same database work fine on WebLogic. I am using Orion 1.4.5. Danut I am having a problem. I am creating some records using some BMP and CMP EJBs. While Orion is still running I am deleting the records using a simple JDBC client. When I try to ccreate the same records again I get an exception that says javax.ejb.DuplicateKeyException: Entity already exists at com.evermind.server.rmi.ba.invokeMethod(JAX) at com.evermind.server.rmi.a1.invoke(JAX) at com.evermind.server.rmi.a2.invoke(JAX) at __Proxy1.create(Unknown Source) at SelectTestClient.CreateRecords(SelectTestClient.java:102) at SelectTestClient.TestOrion(SelectTestClient.java:264) at SelectTestClient.main(SelectTestClient.java:319) How can I make Orion aware that the database has changed? Thank you, Danut _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Re: HTTPS from Orion Java Bean
Since I have no code, I can only guess... Sounds to me like you are getting a different URLConnection subclass in the two cases. I would try to print out the connection that you are getting to see what it is. Then you will need to see if you can correct the problem from there. tim. Hello all! I've written a bean that calls a credit card processing gateway from a Java bean. It is very simple and executes an https://... request. Then it reads the entire contents of the web page. And it works if I run my AuthBean class from the command line. But when I attempt to use AuthBean, calling it from an Orion JSP, I get a runtime error: SSL not implemented. So I looked at all I did to enable the j2sdkee1.2.1 to work with SSL and tried to somehow apply that to Orion, but I came up blank. I read through the SSL help page and it doesn't seem to address the problem I'm having. Any help would be appreciated! -- -Geoff Marshall, Director of Development ... t e r r a s c o p e (415) 951-4944 54 Mint Street, Suite 110 direct (415) 625-0349 San Francisco, CA 94103 fax (415) 625-0306 ...
Re: Too much caching? - the database has changed
Check the docs. There is a flag that you need to set to tell Orion that is does not have "exclusive" access to the database, and that it needs to recognize when a record is updated by a program other than Orion. I believe you need to look at the "exclusive-write-access" attribute of the entity-deployment element in orion-ejb-jar.xml. tim. Two more things. 1. On the server side I get the following CMPSelectTestEJB() setEntityContext ejbCreate( 10, Name 10, Address 10 ) Entity 10 passivated java.lang.Throwable at com.evermind.server.ejb.EntityEJBHome.ail(JAX) at com.evermind.server.ejb.EntityEJBObject.releaseContext(JAX) at CMPSelectTestHome_EntityHomeWrapper19.create(CMPSelectTestHome_Entity HomeWrapper19.java:377) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.bc.do(JAX) at com.evermind.util.f.run(JAX) ejbPassivate( 10, Name 10, Address 10 ) There is no record with ID = 10, name = "Name 10" and address = "Address 10". 2. The exactly same code for EJB, client and the same database work fine on WebLogic. I am using Orion 1.4.5. Danut I am having a problem. I am creating some records using some BMP and CMP EJBs. While Orion is still running I am deleting the records using a simple JDBC client. When I try to ccreate the same records again I get an exception that says javax.ejb.DuplicateKeyException: Entity already exists at com.evermind.server.rmi.ba.invokeMethod(JAX) at com.evermind.server.rmi.a1.invoke(JAX) at com.evermind.server.rmi.a2.invoke(JAX) at __Proxy1.create(Unknown Source) at SelectTestClient.CreateRecords(SelectTestClient.java:102) at SelectTestClient.TestOrion(SelectTestClient.java:264) at SelectTestClient.main(SelectTestClient.java:319) How can I make Orion aware that the database has changed? Thank you, Danut _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Re: How to specify cache time out period for images !!!!
This is a very general HTTP/browser question that you might get a quicker answer to from a more target newsgroup, such as comp.infosystems.www.browsers, or one related to HTTP. However, if someone on this list has the answer, I know I sure would like to hear it. I wonder if have a servlet field the requests for images, so that it can set the proper header lines, would be enough? I don't know if browsers honor those headers when they are downloading images. tim. Hi, We have a J2EE application developed with JSP,EJB and SQL server 2000 with Orion Server.We want to cache all our jsp page for a particular time on a caching server.With HTTP Headers this is perfectly working but the images on the page it never Time out. I would like to know if there is a way to set cache time out for images in Orion or JSP Can any body help. Regards Rajeev
Re: Servlet loading twice if init() not finished?
I believe that is perfectly normal behavior. Init() is called whenever a servlet instance is created, and they may be created at any time and in any number (unless you specify a limit in your servlet engine, or you use the single threaded model for your servlet, which I do not recommend for obvious reasons). This is why your servlet must be written for a multi-threaded environment. The only workaround I can think of, if you can not redesign your code, is to use a Singleton to get the loading done, and make the Singleton synchronized. tim. Hi, i have a servlet as a front component in my webapp; the servlet has also the task of loading objects from a db during his inizialization. Loading the objects takes some time i have encountered a situation wich i didn't expected wich i'm not sure if i'm doing something wrong or it is orion. The situation is that if orion recive a request wich point to the servlet before the servlet has finished the init() method (wich was triggered from a previous request) it creates another instance of the servlet. I have done a small example so that i can explain me in a more clear way : in my web.xml file i have defined mapped the servlet: servlet servlet-nametestServlet/servlet-name servlet-classTestServlet/servlet-class /servlet servlet-mapping servlet-nametestServlet/servlet-name url-pattern/test/url-pattern /servlet-mapping the code of the servlet is: import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet(req, res); } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { System.out.println("doGet()"); } public void init() { System.out.println("init() " +this); try { Thread.currentThread().sleep(5000);// this is for simulating the time consuming task } catch (Exception e) {} System.out.println("done! " + this); } } now, if I start the server i call the servlet 2 times (the second before init() finish) i can see 2 servlet instance created (see the output below) D:\orionjava -jar d:/orion/orion.jar Orion/1.4.5 initialized init() TestServlet@704baa init() TestServlet@34fad5 done! TestServlet@704baa doGet() done! TestServlet@34fad5 doGet() wich is not really what i want( expected). I haven't watched the specs so i'm not sure if this is the correct behavior in a situation like that i would like to know what u people think about it. If someone has also a workaround it will be very much appreciated.. ;) I'm running orion on w2k (i tried 1.4.5 1.4.4, same behaviour for both). Marco -- Ing. Marco Isella, Software Engineer TINET SA, Via Violino 1, CH-6928 Manno-Lugano tel. +41 91 612 22 22, fax. +41 91 612 22 23 email [EMAIL PROTECTED] http://www.tinet.com
Re: orion and mysql?
I found it very easy...I use: http://mmmysql.sourceforge.net/ - jdbc driver http://javaexchange.com/ - connection pooling One variable i had was w/javaexchange's DBBroker, set AutoReconnect=true... so far so good...been using awhile Which mysql are you using? Not all versions support transactions. tim.
Re: Orion returns X EJB when you lookup for Y EJB !!!
First, we faced big problem of lookup which everybody is facing. We solved that after very long exercise. Now we are facing another bigger problem. Please elaborate and explain to the list what you did to solve this problem. tim.
Re: application.log file size
My thought is that you should rotate that log file the same way that many logfiles are rotated. Then it will not grow to 2.1GB. tim. Hey there, Has anyone ever delt with the application.log file size? We ran into a situation where orion died because it could not access the log file. It's size had ballooned to 2.1GB. Any thoughts/ideas? Thanks in advance, -Ken -- /* * Ken Eisner * Developer * Bricsnet US, LLC * Portsmouth, NH * * phone: 603-559-2528 * [EMAIL PROTECTED]
Re: Downloading a file via a Servlet
We have a servlet that sends back PDFs that are stored in a database. Everything seems to work great but the one oddity/issue that I would like to solve if possible is. When someone wants to save the PDF, instead of viewing, it wants to save the PDF as the name of the servlet. I understand why this is the case, but I wonder if there is anything, perhaps in the content header, that I could set the actual name of the file. Any suggestions would be greatly appreciated. Most browsers only consider the URL when determining the name to save as. I do not know of any specific header to modify this. To solve the problem in previous systems, I designed the servlet to include the "name.pdf" at the end of the URL, which I used as the servlet's PathInfo. This certainly solves the problem. tim.
Re: Session timeout
Setting the session's timeout to infinite makes sense when you are managing the timeout within your logic. For instance, our system uses its own concept of an EJB session, which the servlet "fronts" with its own HTTPSession. Thus, when the EJB session times out, we would then invalidate the HTTPSession. tim. Nobody's answering my question. Please~~ Any idea is welcome. Thanks very much. - Original Message - From: "Seung Ryong Bang" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Monday, January 22, 2001 10:03 AM Subject: Session timeout Hello all, I have just put the following line in my web.xml. session-config session-timeout0/session-timeout /session-config It will not invalidate any session unless the session is forced to be invalidated on purpose. I do not really know if it's going to be fine that way. A session is going to be alive without being invalidated all thru the system, even if the session is not used by anyone anymore. Is that right? That being the case, isn't it kinda resource waste? Am I getting something wrong? I appreciate your help and thoughts in advance. PS: The above config. in web.xml sets the servlet session timeout. Right? Then what about session bean's timeout? Is that the same thing? Or is it somewhere else?
Re: Connection reset by peer: socket write error Can someone help
That is exactly correct. Say during a long download, the user hits the "Stop" button. The browser will close the connection, and the Exception indicated will be thrown by the underlying stream for the servlet. You will need to catch these exceptions if they are a problem for the servlet. tim. This is not specific to orion. I've seen it with weblogic as well. My theory is that the browser (I suspect that it is explorer only) abruptly stops reading a http response. The webserver is then left with a socket it can't write to any longer. Marcel - Original Message - From: "Puthezhath, Rajeev (TWII Boston)" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Thursday, January 25, 2001 4:07 PM Subject: Connection reset by peer: socket write error Can someone help Hi, We are developing a web application with orion as application server and sql server as the database. When i do stress test some time at get the following error.Can Some one say why this is happening in Jsp Exception com.evermind.server.http.HttpIOException: Connection reset by peer: sock et write error com.evermind.server.http.HttpIOException: Connection reset by peer: socket write error at com.evermind.server.http.ez.write(JAX, Compiled Code) at com.evermind.server.http.EvermindJSPWriter.r2(JAX, Compiled Code) at com.evermind.server.http.EvermindJSPWriter.flush(JAX, Compiled Code) at com.evermind.server.http.EvermindJSPWriter.write(JAX, Compiled Code) at __jspPage24_news_default_sps._jspService(__jspPage24_news_default_sps.java, Com piled Code) at com.orionserver.http.OrionHttpJspPage.service(JAX, Compiled Code) at com.evermind.server.http.HttpApplication.w5(JAX, Compiled Code) at com.evermind.server.http.JSPServlet.service(JAX, Compiled Code) at com.evermind.server.http.d1.si(JAX, Compiled Code) at com.evermind.server.http.d1.forward(JAX, Compiled Code) at com.evermind.server.http.ed.sp(JAX, Compiled Code) at com.evermind.server.http.ed.so(JAX, Compiled Code) at com.evermind.util.f.run(JAX, Compiled Code) Can some one please help. Regards Rajeev
Re: AW: Stand-alone-client
ApplicationClientInitialContextFactory is the right factory when using application clients (J2EE - application-client.xml). If you want to use a pure stand alone Java Application RMIInitialContextFactory should be your choice. Please elaborate. What is the difference between an "application client" and a "pure stand alone Java Application"?
Re: Stand-alone-client
Try using: prop.setProperty( "java.naming.factory.initial", "com.evermind.server.rmi.ApplicationClientInitialContextFactory"); Hello! I'm trying to connect to my EJB's from a stand alone client like this: Properties prop = new Properties(); prop.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory"); prop.setProperty("java.naming.provider.url","ormi://localhost/myApp"); prop.setProperty("java.naming.security.principal","admin"); prop.setProperty("java.naming.security.credentials","123"); Context con = new InitialContext(prop); boundObject = con.lookup("java:comp/env/ejb/XXXHome"); xxxHome = (XXXHome)PortableRemoteObject.narrow(boundObject,XXXHome.class); Im getting this error message: "javax.naming.NameNotFoundException: java:comp/env/ejb/XXHome not found." I know that the EJB's are working cause I'm able to access them from a jsp-page. I have refs to the EJB in application-client.xml. Any suggestions ? /C.
RE: Dynamic JSP in Orion
I want to second this sentiment. We looked at JSP, Cocoon, Struts, and all of the other so-called "logic/presentation separation schemes". However, every time I looked at the pages of those schemes I saw code embedded in there. That did not look like separation to me. So, we built a simple servlet that invokes lightweight command objects that talk to session beans for the business logic. The command objects are selected by the servlet's pathInfo, and they simply build an XML document that represents the results of the business logic. The XML is then handed to XSLT along with the XSL page for the command, and HTML is sent to the client. The commands and pages are all specified by a simple XML configuration document that the server reads at startup time. The commands know nothing about the page. The pages know nothing about the commands. I even have the option of sending the XML and XSL to the client's browser and offloading the XSLT processing. Also, I can easily hand a simple example XML document to a webpage designer, and they can code the XSL without ever having to connect to the live system to run the logic! This is a hueg win. So far, this approach has worked well and feels far superior to JSP or its ilk. The most significant downside that I see is that XSLT support is scarce in webpage development tools such as DreamWeaver and its kind. I expect this to improve over time, but it is an important consideration. The only other complaint I have is that XSL is not a pretty language. tim. In my opinion the best template solution is one based on xsl and xml; with the best separation information, display. And is very easy to use if you know little xslt; -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Robert S. Sfeir Sent: mardi 9 janvier 2001 23:46 To: Orion-Interest Subject: Dynamic JSP in Orion Hello folks. Still on the path of getting to know JSP and Orion, and was wondering how (hopefully without using cocoon) can I get to the point of serving dynamic JSP files. What I'm tying to do is serve up templates which are stored in the DB. The templates contain html which forms the look and feel of a site, and the different features available in a certain section of the site. These Templates also return the content for the site, the content itself may or may not contain more dynamic data. Ultimately those templates and content would contain some JSP code or XML code which gets changed based on the user, location, template, content, the content type etc... I'm coming from a Cold Fusion / Tango environment, and I can see that things are a little different with JSP, and the rules change dramatically. it's pretty easy to do this stuff in those environments. It doesn't seem as obvious in JSP since the pages are pre compiled and any JSP code which might exists in the Templates or content will be ignored. What I need to do is parse that code, or write something which will allow me to parse that code. I don't mind so much putting in the coding time, but I am concerned about maintaining top serving speed, and still allow me the freedom of being as dynamic as my clients want to be. So with that in mind, I was wondering if Orion had any internal facilities to support some kind of dynamic JSP pages. If not what do you folks recommend to use for such applications? Thanks much in advance, and sorry if this subject has already come up before. Robert S. Sfeir Director of Software Development PERCEPTICON corporation San Francisco, CA 94123 w - http://www.percepticon.com/ e- [EMAIL PROTECTED] t - (415) 749-2900 x205