Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Websphere 8.5 web services not deployed

I am having a tough time getting a web service working on Websphere. I have an ejb-jar that has a defined web service, using the JAXWS annotation @WebService. This ejb-jar is then packaged into an ear. I have successfully deployed the ear onto Glassfish and have been able to access my WebService. However, when I try to deploy that same ear into Websphere 8.5, I don't see any exposed WebService. What are the steps I need to take to make this ear work in Websphere?

And how do I view what WebServices are available in the Websphere admin console?

Thanks

like image 276
sworded Avatar asked Jul 31 '13 21:07

sworded


1 Answers

In order to view the available Web Services in the WebSphere cell, from the admin console, select Services and then Service Providers.

If you deployed an EAR containing a Web Service and you can't see the Web Service as being available in WAS, your best bet would be to first look at the WAS logs (regular logs + the FFDC logs) to see maybe WAS had a problem processing your service class (for whatever reason).

If that doesn't help, you can configure WAS to emit trace data for JAX-WS operations.

I encountered a similar problem before when WAS didn't process my Web Service class and wrote nothing about it to its logs. Only once I set up a trace, I figured out what the problem was, which may be similar to the problem you're having: it had to do with WAS trying to deploy a JAX-WS service when the following are true -

  1. The EAR contains the source code for the JAX-WS service; and
  2. The EAR doesn't contain all classes required to compile the Web Service class (or any of the classes being used directly by the Web Service class.

Explanation: when you deploy an EAR to WebSphere and specify that Web Services should be deployed (-deployws) when the EAR contains the source code for your application, WebSphere plays smart and goes ahead and tries to recompile your code. Why? beats the living hell out of me but it is what it is. If WebSphere fails to compile your JAX-WS Web Service class - or any class being used by your Web Service class - it simply gives up, writes nothing to the logs and your service doesn't get deployed at all.

The only place where WebSphere would log this would be into a trace file, if the JAX-WS trace was activated.

(I was considering to open a PMR with IBM for this, but I already had about 10 PMRs open at that time...)

like image 82
Isaac Avatar answered Sep 24 '22 15:09

Isaac