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]