[jboss-user] [JBossWS] - Problems accessing SSL webservice
Vitor Isaia
do-not-reply at jboss.com
Thu Sep 4 10:37:35 EDT 2008
Greetings,
I have a working jax-ws webservice deployed, wich I access it through a java standalone client. Now I need to enable SSL on it. I've configured jboss-web.deployer/server.xml to create the SSL connection, and now I have my webservice successfully deployed in the following URL:
https://localhost:8443/abc/deteccaopcws?wsdl
with:
...
| <service name="DeteccaoPCWSService">
| <port binding="tns:DeteccaoPCWSBinding" name="DeteccaoPCWSPort">
| <soap:address location="https://localhost:8443/abc/deteccaopcws"/>
| </port>
| </service>
| ...
and in the webservice class:
...
| @WebService(targetNamespace = "xyz.abc.deteccaoPC")
| @WebContext(contextRoot = "/abc", urlPattern = "/deteccaopcws", transportGuarantee="CONFIDENTIAL")
| @Stateless
| @HandlerChain(file = "deteccaopc-handler.xml")
| public class DeteccaoPCWS
| ...
The problem is, since I've turned on SSL, my client doesn't work anymore...
I always get a "Target endpoint no set" exception:
Exception in thread "main" javax.xml.ws.WebServiceException: org.jboss.ws.WSException: Target endpoint address not set
| at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:410)
| at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:316)
| at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172)
| at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152)
| at $Proxy16.processarDeteccao(Unknown Source)
| at deteccaopc.abc.xyz.client.SingleClient.main(SingleClient.java:70)
| Caused by: org.jboss.ws.WSException: Target endpoint address not set
| at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:334)
| at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:304)
| ... 4 more
Here is my client service:
@WebServiceClient(name = "DeteccaoPCWSService",
| targetNamespace = "xyz.abc.deteccaoPC", wsdlLocation = "https://localhost:8443/abc/deteccaopcws?wsdl")
| public class DeteccaoPCWSService
| extends Service
| {
|
| private final static URL DETECCAOPCWSSERVICE_WSDL_LOCATION;
| private final static Logger logger = Logger.getLogger(deteccaopc.abc.xyz.DeteccaoPCWSService.class.getName());
|
| static {
| URL url = null;
| try {
| URL baseUrl;
| baseUrl = deteccaopc.abc.xyz.DeteccaoPCWSService.class.getResource(".");
| url = new URL(baseUrl, "https://localhost:8443/abc/deteccaopcws?wsdl");
| } catch (MalformedURLException e) {
| logger.warning("Failed to create URL for the wsdl Location: 'https://localhost:8443/abc/deteccaopcws?wsdl', retrying as a local file");
| logger.warning(e.getMessage());
| }
| DETECCAOPCWSSERVICE_WSDL_LOCATION = url;
| }
| public DeteccaoPCWSService(URL wsdlLocation, QName serviceName) {
| super(wsdlLocation, serviceName);
| }
| public DeteccaoPCWSService() {
| super(DETECCAOPCWSSERVICE_WSDL_LOCATION, new QName("xyz.abc.deteccaoPC", "DeteccaoPCWSService"));
| }
| @WebEndpoint(name = "DeteccaoPCWSPort")
| public DeteccaoPCWS getDeteccaoPCWSPort() {
| return super.getPort(new QName("xyz.abc.deteccaoPC", "DeteccaoPCWSPort"), DeteccaoPCWS.class);
| }
| }
And in the client, I'm setting theseVM properties :
-Djavax.net.ssl.trustStore=/home/vitor/Desktop/wsse.truststore
| -Djavax.net.ssl.trustStorePassword=jbossws
So, the hole code I've show you was working without SSL, in the URL http://localhost:9090/abc/deteccaopcws?wsdl
Even having that exception (Target endpoint no set) I know the webservice is deployed because I can successfully access it in my browser...
One thing I suspect is: Since the certificate is a self-signed certficate, when I acess it in the browser it alerts me about it, asking for the confirmation. I guess that's what is causing the error.
I appreciate any help, thanks.
Vitor Isaia
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4174316#4174316
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4174316
More information about the jboss-user
mailing list