tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: OpenEJB.war outside webapps
Date Tue, 10 Jun 2008 20:46:56 GMT
The exception is caused when the listener fails to find the  
openejb.war file.  I think the code is only scanning the webapps  
directory, but there may even be a bug in that for Tomcat 6.

In the mean time, I added a System property "openejb.war" which we  
will use to locate the openejb.war file.  You can find a build of the  
openejb.war, which contains this patch here:

	http://people.apache.org/~dain/openejb.war

I also create issue OPENEJB-819 to track this bug.

-dain

On Jun 10, 2008, at 12:27 AM, uglything wrote:

>
> Hello Dain,
>
> Don't worry for the late reply, I'm not in a hurry :-)
> I hope that your client has come to better feelings now ;-)
>
> I get things to work by declaring the contexts in the Catalina/ 
> localhost
> repository in the tomcat conf dir.
>
> My layout is as follow :
>
> MyProject/
>        +-- src/
>        |        +-- main/
>        |        |        +-- java/
>        |        |        +-- resources/
>        |        |        +-- webapps/
>        |        |                +-- WEB-INF/
>        |        |                        +-- web.xml
>        |        +-- test/
>        |                +-- java/
>        |                +-- resources/
>        +-- target/
>        |        +-- MyProject-0.0.1-SNAPSHOT/
>        |        |        +-- META-INF/ (empty)
>        |        |        +-- WEB-INF/
>        |        |                +-- classes/
>        |        |                +-- lib/ (No OpenEJB jars in here)
>        |        |                +-- web.xml
>        |        +-- classes/
>        |        +-- test-classes/
>        |        +-- war/
>        |        +-- MyProject.war
>        +-- target-eclipse/ (Compilation directory for Eclipse)
> +-- runtime/ (directory that acts as catalina.base and openejb.base)
>                +-- conf/
>                |        +-- Catalina/
>                |        |        +-- localhost/
>                |        |                +-- openejb.xml
>                |        |                +-- MyProject.xml
>                |        +-- context.xml
>                |        +-- logging.properties
>                |        +-- openejb.xml
>                |        +-- server.xml
>                |        +-- web.xml
>                +-- logs/ (logs)
>                +-- temp/ (acts as java.io.tmpdir)
>                +-- txlog/ (logs)
>                +-- webapps/ (empty, serves as appBase for the  
> localhost
> host in server.xml)
>                +-- work/
>
>
> Here above, the contents of some important files:
>
> #########################################################################
> Server.xml: I took the one in the tomcat install. I just added the  
> OpenEJB
> listener and trimmed the comments.
>
> <Server port="8005" shutdown="SHUTDOWN">
>
>  <Listener  
> className="org.apache.openejb.tomcat.loader.OpenEJBListener" />
>  <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on" />
>  <Listener className="org.apache.catalina.core.JasperListener" />
>  <Listener  
> className="org.apache.catalina.mbeans.ServerLifecycleListener"
> />
>  <Listener
> className 
> ="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
>
>  <GlobalNamingResources>
>  </GlobalNamingResources>
>
>  <Service name="Catalina">
>
>    <Connector port="8080" protocol="HTTP/1.1"
>               connectionTimeout="20000"
>               redirectPort="8443" />
>    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
>
>    <Engine name="Catalina" defaultHost="localhost">
>      <Host name="localhost"  appBase="webapps"
>            unpackWARs="false" autoDeploy="true"
>            xmlValidation="false" xmlNamespaceAware="false">
>
>      </Host>
>    </Engine>
>  </Service>
> </Server>
> #########################################################################
>
> #########################################################################
> openejb.xml: well, nothing special. I copied the one created by a  
> default
> installation
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <Context docBase="C:\apache-tomcat-6.0.14\webapps\openejb" >
>  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
> allow="127\.0\.0\.1,0:0:0:0:0:0:0:1(%.*)?" deny=""/>
> </Context>
> #########################################################################
>
> #########################################################################
> MyProject.xml: Here again, nothing sexy.
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <Context docBase="../../target/MyProject-0.0.1-SNAPSHOT" />
> #########################################################################
>
> #########################################################################
> openejb.xml: I removed defaults and inserted a database for my project
>
> <openejb>
> 	<Resource id="commonsDatabase" type="javax.sql.DataSource">
> 		JdbcDriver : com.mysql.jdbc.Driver
> 		JdbcUrl : jdbc:mysql://localhost:3306/ccv?useUnicode=true
> 		UserName : ccvusr
> 		Password : ccvpwd
> 	</Resource>
> 	
> 	<Resource id="commonsDatabaseUnmanaged" type="javax.sql.DataSource">
> 		JdbcDriver : com.mysql.jdbc.Driver
> 		JdbcUrl : jdbc:mysql://localhost:3306/ccv?useUnicode=true
> 		UserName : ccvusr
> 		Password : ccvpwd
> 		JtaManaged : false
> 	</Resource>
> </openejb>
> #########################################################################
>
> #########################################################################
> context.xml: Again, this is the original file took from a clean  
> install of
> Tomcat 6 whith comments trimmed.
>
> <Context>
>    <WatchedResource>WEB-INF/web.xml</WatchedResource>
> </Context>
> #########################################################################
>
>
>
>
>
>
>
> This is the configuration I use to start the server in Eclipse :
> VM args:
> 	-Dcatalina.home="C:\apache-tomcat-6.0.14"
> 	-Dcatalina.base="."
> 	-Dopenejb.home="C:\apache-tomcat-6.0.14"
> 	-Dopenejb.base="."
> 	-Djava.io.tmpdir="temp"
> 	-Xmx128M
> 	-javaagent:"C:\apache-tomcat-6.0.14\lib\openejb-javaagent.jar"
>
> Main class:
> 	org.apache.catalina.startup.Bootstrap
>
> Program arguments:
> 	start
>
> Classpath:
> C:\apache-tomcat-6.0.14\bin\bootstrap.jar
>
> Working directory:
> 	MyProject/runtime/
>
>
> When I start the server, I get the following exception :
> java.lang.NullPointerException
> 	at
> org 
> .apache 
> .openejb 
> .tomcat.loader.OpenEJBListener.lifecycleEvent(OpenEJBListener.java:46)
> 	at
> org 
> .apache 
> .catalina 
> .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> 	at
> org 
> .apache.catalina.core.StandardServer.initialize(StandardServer.java: 
> 767)
> 	at org.apache.catalina.startup.Catalina.load(Catalina.java:518)
> 	at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun 
> .reflect 
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
> 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
> 10 juin 2008 09:01:23 org.apache.catalina.realm.JAASRealm setContainer
> INFO: Set JAAS app name Catalina
> 10 juin 2008 09:01:23 org.apache.coyote.http11.Http11AprProtocol init
> INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
> 10 juin 2008 09:01:23 org.apache.coyote.ajp.AjpAprProtocol init
> INFO: Initializing Coyote AJP/1.3 on ajp-8009
> 10 juin 2008 09:01:23 org.apache.catalina.core.StandardService start
> INFO: Démarrage du service Catalina
> 10 juin 2008 09:01:23 org.apache.catalina.core.StandardEngine start
> INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
>
>
>
> After that, everything works fine, except that the openejb doesn't  
> load at
> the beginning but rather as per Tomcat's context loading rules
> (alphabetically, that is)
>
> So openejb starts first only if my project bears a context name that  
> is
> alphabetically after "openejb". I had to rename MyProject.xml to
> zMyProject.xml to get that…
>
> I've found this loader + eclipse problem in another post on this  
> forum:
> http://www.nabble.com/forum/ViewPost.jtp?post=16419231&framed=y
>
>
> SO,
>
> To sum up a bit :
>
> If I declare the contexts for openEJB and my application inside the
> server.xml something fails.
> If I declare the same contexts in the Catalina/localhost directory,
> everything works fine except for the OpenEJB loader that fails with  
> a NPE.
>
> Well I hope that you have a better sight of my project now…
> If you need more info, I'll be glad to provide you with an Eclipse  
> project
> that produce these conditions.	
>
> Again, thanks **a lot** for your concern.
>
> Regards,
>
> Juan Manuel
>
> -- 
> View this message in context: http://www.nabble.com/OpenEJB.war-outside-webapps-tp17666227p17749351.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>


Mime
View raw message