It seems to be caused when the super(resourceContext) line when the superconstructor is called) in the Service class.
Its got me stumped! -----Original Message----- From: Shahzad Younas [mailto:[EMAIL PROTECTED] Sent: 17 March 2005 20:24 To: [email protected] Subject: RE: Instance Problem.. Hi, I've done as you have said, but now I am getting an exception thrown. I've tried a few things but I cant seem to resolve it. My app is receiving my incoming message ok, then it tries to instantiate the resource. Regards Shahzad ERROR MESSAGE ============= --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ProjectResourceBundle: org.apache.ws.resource.i18n.resource::handleGetObject(JNDI_HOME_LOCATION) --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] AbstractResourceContext: The JNDI home location is: wsrf/services/ShibbolethBrowserSession/home --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ProjectResourceBundle: org.apache.ws.resource.i18n.resource::handleGetObject(RETRIEVED_SERVICE_CLAS SNAME) --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ResourceHandler: Retrieved Service Class name: shibbolethBrowserSession.ShibbolethBrowserSessionService from R --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ProjectResourceBundle: org.apache.ws.resource.i18n.resource::handleGetObject(CREATING_INSTANCE_OF_S ERVICE) --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ResourceHandler: Creating an instance of service class: class shibbolethBrowserSession.ShibbolethBrowserSessio java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.apache.ws.resource.handler.ResourceHandler.createService(ResourceHandler .java:408) at org.apache.ws.resource.handler.ResourceHandler.handleRequest(ResourceHandler .java:150) at org.apache.ws.resource.handler.axis.ResourceProvider.invoke(ResourceProvider .java:203) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java: 32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java: 301) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext Valve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:684) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at org.apache.ws.resource.AbstractPortType.<init>(AbstractPortType.java:55) at shibbolethBrowserSession.AbstractShibbolethBrowserSessionService.<init>(Abst ractShibbolethBrowserSessionService.java:26) at shibbolethBrowserSession.ShibbolethBrowserSessionService.<init>(ShibbolethBr owserSessionService.java:47) ... 40 more --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ProjectResourceBundle: org.apache.ws.resource.i18n.resource::handleGetObject(UNEXPECTED_ERROR_WITH_ EXCEPTION) --> 03-17-05 20:18:33 DEBUG [http-8080-Processor25] ResourceProvider: Fault: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: javax.xml.rpc.JAXRPCException: Unexpected error. Cause: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:javax.xml.rpc.JAXRPCException: Unexpected error. Cause: java.lang.reflect.InvocationTargetException at org.apache.ws.resource.handler.ResourceHandler.handleRequest(ResourceHandler .java:191) at org.apache.ws.resource.handler.axis.ResourceProvider.invoke(ResourceProvider .java:203) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java: 32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java: 301) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext Valve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:684) at java.lang.Thread.run(Unknown Source) {http://xml.apache.org/axis/}hostname:dellpc -----Original Message----- From: Ian Springer [mailto:[EMAIL PROTECTED] Sent: 17 March 2005 18:37 To: [email protected] Subject: Re: Instance Problem.. Hi Shahzad, You need to add the following to XXXAbstractService and XXXService: public XXXAbstractService( ResourceContext resourceContext ) { super( resourceContext ); } Note, it's on our TODO list to make Wsdl2Java generate all services as extending AbstractPortType, so these manual changes will no longer be necessary. Regards, Ian Shahzad Younas wrote: >Hi, > >Thanks for the info guys. Nice and clear instructions! That's some good >stuff! >When I try and make my XXXAbstractService class that was generated >extend AbstractPortType, my compiler starts saying that I need a super >constructor in both my AbstractService and my Service class. > >What code do I need to put in these? I added a default constructor, but >then it crashed on me! > > >Also, in the WSDL, is there no standard way to specify a method to >accept a single "<CREATE>" tag, and for it to create an instance of the >resource and return the resource ID? I am sure this is a fucntionality >of the Wsdl2Java task to generate the specific methods to do this. > >I tried adapting bits of the "CreatePrinter" example to allow mine to >create instances, but it failed miserably. > >Thanks in advance! >Shahzad > > >-----Original Message----- >From: Ian Springer [mailto:[EMAIL PROTECTED] >Sent: 17 March 2005 17:35 >To: [email protected] >Subject: Re: Instance Problem.. > >Hi Shahzad, > >Good question. We've had other questions along these lines, so we >definitely need to clarify this in the tutorial. > >The Service is stateless, but for each resource instance, a Resource is >created which is stateful. The Resource contains the >ResourcePropertySet but may also contain additional state (i.e. member vars). Try the following: > >Make the XXXAbstractService class that was generated extend >AbstractPortType. Then you can do something like: > >class XXXService >{ > ResponseDocument addOne(RequestDocument) > { > getResource().incrementCounter(); > return new ResponseDocument(getResource().getCounter()) > } >} > >class XXXResource >{ > private int m_counter; > > public void incrementCounter() > { > m_counter++; > } > > public int getCounter() > { > return m_counter; > } >} > >Shahzad Younas wrote: > > > >>Hi, >> >>I was wondering, lets say I have a method in my service class: >> >>class Service >>{ >> private int tmp=1; >> >> ResponseDocument addOne(RequestDocument) >> { >> tmp++; >> return new ResponseDocument(with a field containing "tmp") >> } >>} >> >>if i call this method once (for a given resource ID) (by call, i mean >>send a SOAP Request containing the RequestDocument) , i will get a >>value of 2 returned. >>Ifi call it again, with the same resource ID, will i get a value of 3 >>returned? IE by state, do we mean that all variables for the service >>are preserved for each resource ID? >> >>I am abit confused. I know ResourceProperties should hold stateful >>values, but I need for the service private variables to be maintained too. >> >>Thanks >>Shahzad >> >> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
