See inline.
Simon
Radim Kolarik wrote:
Oh, sorry about the stack trace, it only occurs with older version of
Tuscany when TuscanyServlet is used instead of filters.
I am now using Tuscany snapshot from the Maven repository dated 4th
September, with filters set up in web.xml, but still no luck on
Websphere. There is now no warning or exception in the log, but the
service is not being picked up. It is being picked up in Tomcat.
Do you have any ideas?
Thanks,
Radim
On 9/13/07, Radim Kolarik <[EMAIL PROTECTED]> wrote:
Hi Yang,
thank you for your suggestions.
I am sure I use the correct root context, because I can access a JSP
within the application successfully. It seems to me that the axis
service is not being recognized at
http://localhost:9201/contextRoot/componentName/serviceName.
I think this might be connected with the port number. If your
.composite file just uses the <binding.ws/> element with dynamic WSDL
generation and no "uri" attribute, then Tuscany will construct a default
URI. There's a hardcoded port number of 8085 in the Axis2ServiceProvider
code, but I think in a webapp environment Tuscany would look for the
webapp server's configured port or fall back to 8080 if it doesn't know
what this is. (I'm not 100% sure of the details of how this works.)
In the WebSphere environment you are using a port number of 9201 but
Tuscany doesn't know about this port number. Maybe there's an API we
could use to get it from WebSphere, or some configuration that could be
set to override the default 8080. There was discussion on the list
(see [1]) about adding the ability to set a system property for the
default port number. This would require the WebSphere startup
configuration to include this system property. This would be better
than having the port number in the .composite file, as it would allow
the same war to be deployed on different servers that use different
port numbers.
To confirm that this is the problem, can you try adding an explicit
"uri" attribute to the <binding.ws/> element? (If you are using explicit
WSDL and specifying a port in <binding.ws>, then you would need do this
in your WSDL port definition instead.) The value of the "uri" attribute
is the full URI for the service, so in your case it is:
<binding.ws uri="http://localhost:9201/contextRoot/componentName/serviceName">
If this works, then we know the port number is the problem. The longer
term solution will be to provide a suitable way of configuring the port
so it's not hard wired into the .composite file.
Simon
[1] http://www.mail-archive.com/[email protected]/msg22977.html
It is very strange, because if I deploy the same WAR to Tomcat, it works fine.
We have also tried attaching a static WSDL file, again, that gets
displayed fine in Tomcat, but on Websphere, we get:
[9/13/07 12:36:14:309 IST] 00000035 WebApp E [Servlet
Error]-[TuscanyServlet]: java.lang.StringIndexOutOfBoundsException
at java.lang.String.substring(String.java:1081)
at
org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.setContextRoot(TuscanyListingAgent.java:286)
at
org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.processListService(TuscanyListingAgent.java:102)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.doGet(Axis2ServiceServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.service(Axis2ServiceServlet.java:235)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:77)
at
org.apache.tuscany.sca.host.webapp.TuscanyServlet.service(TuscanyServlet.java:63)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at
com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
at
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274)
at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at
com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
at
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)
Does that help?
Thanks,
Radim
On 9/12/07, Yang Lei <[EMAIL PROTECTED]> wrote:
I assume you did all the following correct:
- I assume the context root is correct for the war: you can use WAS
console to check the value
- I assume the port is correct. E.g. in my env, 9081 is the default
port for my war. You can also use WAS console to check the setting on
virtualHost
- I assume the componentName/ServiceName is the one you registered to
Axis 2 engine? Can you do the following to make sure Axis 2 recognize the
service? http://localhost:9201/contextRoot/componentName/serviceName if
you can then you can try
http://localhost:9201/contextRoot/componentName/serviceName/?wsdl
Good luck.
Yang.
On 9/12/07, Radim Kolarik <[EMAIL PROTECTED]> wrote:
Hi all,
We having problems deploying our services to Websphere. We have
resolved some WAS classloading issues as was recommended by ant elder on
the user group, it seems that the initialization is without a problem
now. But the URL we are trying to map, e.g.
http://localhost:9201/contextRoot/componentName/serviceName?wsdl is not
returning anything.
Is there anybody in Tuscany team who has tried deployment to Websphere?
The same WAR file seems to be working fine on Tomcat, however, not in
WAS 6.1.
Thanks,
Radim
---------------------------------------------------------------------
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]