Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SSL WebService using AXIS

 
Venkata Madhu
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I am trying to invoke a WebSerives using AXIS in Tomcat (SLS Enabled). In the same tomcat i am invoking the WebService from a JSP Page. Which is giving me Error. But if i access the WebService (https://localhost:8443/ctxroot/services/MyWS) from certified browser it is giving me proper message saying

MyWS
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...

But the same WebSerive invoking from the JSP with below code
Service c = new Service();
Call call = (Call) c.createCall(); call.setTargetEndpointAddress("https://localhost:8443/ctxroot/services/MyWS");
call.setOperation("add");
javax.xml.namespace.QName pointQName = new javax.xml.namespace.QName("http://oracle.com/point","point");
call.addParameter("a",pointQName, ParameterMode.IN);
call.addParameter("b",pointQName, ParameterMode.IN);
call.setReturnClass(test.Point.class);
call.registerTypeMapping(Point.class, pointQName, BeanSerializerFactory.class,BeanDeserializerFactory.class);
Point p = (Point) call.invoke(new Object[]{new Point(1,2),new Point(1,2)});
System.out.println(p.getX()+" : "+p.getY());

It is giving follwing error

org.apache.jasper.JasperException: ; nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:199)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:994)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1105)
at java.lang.Thread.run(Thread.java:534)


Can i know the reason for this error, Am i missing something while invoking the Client(Call)

Thanks In Adv
Venkata
 
Ben Souther
Sheriff
Posts: 13411
Firefox Browser Redhat VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you can talk to Tomcat over SSL with a browser, then I'd assume that SSL is properly configured.

I'll move this thread to the webservices forum for you.
Someone there might know if there is something specific you need to do in order to communicate over SSL from an Axis client.
 
Mohit Goyal
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Venkata

Sorry i haven't used JSP so i can't help you with this, But i too have developed a webservice using Axis1.3 which I need to deploy over https on Tomcat.

I am getting error while deploying the service.

Can you please tell me the steps which you followed for setting up SSL on Tomcat and generating the keystore and stuff and the steps for deployment.

I am really stuck because of this.

Thanks a lot in advance.
Mohit
 
Ulf Dittmer
Rancher
Posts: 42967
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
@Mohit Goyal:

Making Tomcat SSL-ready is rather well-documented in the Tomcat documentation. With which of the steps are you having problems?

There's also a sample chapter on WS Security (including SSL) in the book "J2EE Security for Servlets, EJB and Web Services". It gives a step-by-step introduction into using SSL with WS.
[ March 14, 2006: Message edited by: Ulf Dittmer ]
 
Mohit Goyal
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have followed the steps but i keep getting the following exception:

>java.net.SocketException: Default SSL context init failed: Invalid keystore format

i am able to c the tomcat page for https on port 443. I created a keystore using the following command:

>keytool -genkey alias tomcat -keypass changeit -keyalg RSA

and i filled the domain name value whn asked for frst and last name.

next i self signed the certificate:

>keytool -selfcert -alias tomcat -keypass changeit

and then i exported the certificate into the cacerts file:

>keytool -export -alias tomcat -file $JAVA_HOME/jre/lib/security/cacerts -keypass changeit

If I m doing something wrong thn please let me know.

and it would be gr8 if ne1, who's has practically generated keystores and certificates and was successful in running the application, can just provide me with th steps they followed.

Thanks
 
Ludger Pottmeier
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think you'll need to set the VM Properties
javax.net.ssl.trustStore and javax.net.ssl.trustStorePassword
for the Client VM in which th JSP is executed.

Maybe you can do that in the catalina.bat, or for test in the JSP using System.setProperty(key,value)
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic