• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: WOServletAdaptor trouble with tomcat
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: WOServletAdaptor trouble with tomcat


  • Subject: Re: WOServletAdaptor trouble with tomcat
  • From: Jake MacMullin <email@hidden>
  • Date: Mon, 13 Aug 2007 11:32:02 +0100

Jonny,

I had a quick look at the ERXApplication source and I think the problem you are experiencing could be due to the fact that an application's 'main' method is not invoked when it is built as a WAR and deployed in a servlet container. Therefore, any code in the application's constructor that makes the assumption that the main method has been run may cause problems. In the case of ERXApplication, my guess is that the call to allFrameworks.size() in the second line of the constructor is resulting in a null pointer exception.

Debugging this problem isn't helped at all by the fact that when a WebObjects application is deployed in a servlet container and has a problem in the constructor, you get the generic "java.lang.reflect.InvocationTargetException" and not a decent stack trace. In order to simplify debugging of start-up problems with applications deployed to servlet containers, I try to do as little in the constructor as possible and use the WOApplication.ApplicationDidFinishLaunchingNotification to defer any application initialisation code until after the application has been constructed. In this way, you will get a decent stack-trace showing you the underlying cause of the problem.

Regards,

Jake MacMullin


On 13 Aug 2007, at 06:27, Jonathan Meijer wrote:

Hi,

I have been trying to deploy on Tomcat a WARed application.  The issue
I get is that Tomcat logs a bunch of stuff including "- Marking
servlet WOServletAdaptor as unavailable" (see the full log below) when
I fire up the app, and that going to the app's URL
(http://localhost:8080/TestProject/WebObjects/) gives the nice  little
error page "HTTP Status 404 - Servlet WOServletAdaptor is not
available".

This only happens when my Application class extends ERXApplication and
not when it extends WOApplication.  I have tried Eclipse 3.2.2 and
3.3, upgraded WOLips, upgraded Wonder to the latest frameworks, and
made a very simple application with a Main component with simple
static HTML to make sure it was nothing else.

The interesting part is that the exception presented is, as I
understand what's "under the hood", impossible!  Specifically,
_NSUtilities.instantiateObject should only call
_NSUtilities._explainInstantiationException if arguments were passed
to the specified constructor, which WOApplication.primeApplication
does not.

Any ideas?

Jonny Meijer

---

Aug 13, 2007 12:47:00 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive TestProject.war
Classes and frameworks will be loaded out of the WEB-INF/lib and
WEB-INF/classes directories.
MainBundle will be set to TestProject
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WODefaultUndoStackLimit=10
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
NSProjectSearchPath=("..")
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOGenerateWSDL=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23> WOMaxHeaders=200
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOCachingEnabled=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOFrameworksBaseURL=/WebObjects/Frameworks
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAllowRapidTurnaround=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAllowsConcurrentRequestHandling=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAllowsCacheControlHeader=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23> WOSMTPHost=smtp
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAcceptMalformedCookies=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOContextClassName=com.webobjects.jspservlet.WOServletContext
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOMissingResourceSearchEnabled=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOSessionStoreClassName=com.webobjects.jspservlet.WOServletSessionStor e
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WODebuggingEnabled=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WODisplayExceptionPages=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOStatisticsStoreSessionMax=50
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAutoOpenClientApplication=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAdaptorURL=http://localhost/TestProject/WebObjects
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOApplicationBaseURL=/WebObjects
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOAutoOpenInBrowser=false
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
WOIncludeCommentsInResponse=true
<TestProject>[2007-08-13 00:47:07 EDT] <http-8080-Processor23>
------------------------
java.lang.reflect.InvocationTargetException
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 com.webobjects.jspservlet.WOServletAdaptor._applicationInit (WOServletAdaptor.java:415)
at com.webobjects.jspservlet.WOServletAdaptor.initStatics (WOServletAdaptor.java:78)
at com.webobjects.jspservlet.WOServletAdaptor.init (WOServletAdaptor.java:629)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet (StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load (StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup (StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start (StandardContext.java:4230)
at org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild (StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployWAR (HostConfig.java:825)
at org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:515)
at org.apache.catalina.startup.HostConfig.check (HostConfig.java:1220)
at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.commons.modeler.BaseModelMBean.invoke (BaseModelMBean.java:457)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke (DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke (MetaDataImpl.java:220)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (JmxMBeanServer.java:784)
at org.apache.catalina.manager.ManagerServlet.check (ManagerServlet.java:1397)
at org.apache.catalina.manager.HTMLManagerServlet.doPost (HTMLManagerServlet.java:214)
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool $ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.webobjects.foundation.NSForwardException
[java.lang.NullPointerException] null: <Application> failed
instantiation. Exception thrown :
java.lang.NullPointerException: null
at com.webobjects.foundation._NSUtilities._explainInstantiationException( _NSUtilities.java:567)
at com.webobjects.foundation._NSUtilities.instantiateObject (_NSUtilities.java:581)
at com.webobjects.appserver.WOApplication.primeApplication (WOApplication.java:411)
at com.webobjects.appserver.WOApplication.primeApplication (WOApplication.java:459)
... 45 more
- Marking servlet WOServletAdaptor as unavailable
- Servlet /TestProject threw load() exception
javax.servlet.UnavailableException: Error initializing servlet adaptor: null
at com.webobjects.jspservlet.WOServletAdaptor._applicationInit (WOServletAdaptor.java:435)
at com.webobjects.jspservlet.WOServletAdaptor.initStatics (WOServletAdaptor.java:78)
at com.webobjects.jspservlet.WOServletAdaptor.init (WOServletAdaptor.java:629)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet (StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load (StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup (StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start (StandardContext.java:4230)
at org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild (StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployWAR (HostConfig.java:825)
at org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:515)
at org.apache.catalina.startup.HostConfig.check (HostConfig.java:1220)
at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.commons.modeler.BaseModelMBean.invoke (BaseModelMBean.java:457)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke (DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke (MetaDataImpl.java:220)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (JmxMBeanServer.java:784)
at org.apache.catalina.manager.ManagerServlet.check (ManagerServlet.java:1397)
at org.apache.catalina.manager.HTMLManagerServlet.doPost (HTMLManagerServlet.java:214)
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool $ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
@bbc.co.uk


This email sent to email@hidden


http://www.bbc.co.uk/
This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated.
If you have received it in error, please delete it from your system.
Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately.
Please note that the BBC monitors e-mails sent or received.
Further communication will signify your consent to this.

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >WOServletAdaptor trouble with tomcat (From: "Jonathan Meijer" <email@hidden>)

  • Prev by Date: multi select in EOModeler
  • Next by Date: Re: multi select in EOModeler
  • Previous by thread: WOServletAdaptor trouble with tomcat
  • Next by thread: multi select in EOModeler
  • Index(es):
    • Date
    • Thread