Re: Axis exception vending complex types service
Re: Axis exception vending complex types service
- Subject: Re: Axis exception vending complex types service
- From: Allen Cronce <email@hidden>
- Date: Thu, 06 Oct 2005 08:15:15 -0700
I've made a little more progress on this. I found that I had to call
WOWebServiceRegistrar.registerWebService with my service object, even
though I'm using my own types and wsdl. Now the service is being found
and my service object is being instanced when soap requests come in.
But I'm getting another error now because apparently Axis cannot
identify the operation to execute. I've traced this through the Axis
sources and determined that the currentOperation member variable of the
MessageContext passed from WebObjects to Axis is null. I'm not sure who
in the chain is supposed to identify the operation and set this member
variable. And of course, I have no visibility into the WebObjects side
of the equation.
So now does anyone have any suggestions for next steps? I've written to
Apple's DTS, but they have not been responsive.
Best regards,
--
Allen Cronce
Allen Cronce wrote:
No one has any suggestions?
Best regards,
--
Allen Cronce
Allen Cronce wrote:
Hi all,
Since my generic questions regarding vending complex types based web
services have gone unanswered, I'm posting a concrete problem.
Basically I've tried to build a test service and client application
using my own wsdl and schema. Unfortunately, I'm having problems
getting it to work.
The wsdl defines a service using document style soap. The schema
contains the complex types. I've generated the corresponding classes
using WSDL2JavaWO. Actually, I'm using a modified version of
WSDL2JavaWO where I added the option to generate a helper class for
the server as well as the client side. At some point, I'll contact
Victor Tsang to see if he's interested in my changes (assuming that I
can get this to work ;-)
The problem now is that I get the following error on the server side
when posting a request from my test client to the test server:
--snip--
faultCode: {http://xml.apache.org/axis/}Server.NoService
faultSubcode:
faultString: The AXIS engine could not find a target service to
invoke! targetService is TestService2
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://xml.apache.org/axis/}Server.NoService
faultSubcode:
faultString: The AXIS engine could not find a target service to
invoke! targetService is TestService2
faultActor:
faultNode:
faultDetail:
The AXIS engine could not find a target service to invoke!
targetService is TestService2
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:308)
at
com.webobjects.appserver._private.WOWebService.performActionNamed(WOWebService.java:372)
at
com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:240)
at
com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:142)
at
com.webobjects.appserver._private.WOWebServiceRequestHandler.handleRequest(WOWebServiceRequestHandler.java:88)
at
com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at Application.dispatchRequest(Application.java:56)
at
com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173)
at
com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552)
The AXIS engine could not find a target service to invoke!
targetService is TestService2
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:308)
at
com.webobjects.appserver._private.WOWebService.performActionNamed(WOWebService.java:372)
at
com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:240)
at
com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:142)
at
com.webobjects.appserver._private.WOWebServiceRequestHandler.handleRequest(WOWebServiceRequestHandler.java:88)
at
com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at Application.dispatchRequest(Application.java:56)
at
com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173)
at
com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552)
--snip--
Note that I'm not calling WOWebServiceRegistrar.registerWebService in
my server application because I have my own wsdl and complex types.
So I think it doesn't make sense for me to expose methods of a class
and have WO generate the wsdl for me, like the Calculator sample.
Instead, my WSDL2JavaWO-generated helper class is calling a series of
WOWebServiceRegistrar.registerFactoriesForClassWithQName to register
the class serializers. My wsdd files are stock as generated when I
created my new server and client applications under WOLips.
I've looked at the SOAP coming in by overriding dispatchRequest and
it looks OK. So my guess is that I'm missing some sort of glue
between WO and Axis, perhaps because I'm not calling
WOWebServiceRegistrar.registerWebService. But as I indicated, there
doesn't seem to be an appropriate service registration method to call
in my case.
Any recommendations on where to go from here would be appreciated.
Best regards,
--
Allen Cronce
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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