don't understand this: The service interface does not implem
balteo May 9, 2006 9:55 AMHello,
I am trying to call a web service. I have the following code in my servlet:
/*
* ServletWSClient.java
*
* Created on 9 mai 2006, 12:32
*/
package pack;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author Administrator
* @version
*/
public class ServletWSClient extends HttpServlet {
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String s = null;
try { // This code block invokes the myOperation operation on web service
s = getEJBWebServiceOneSEIPort().myOperation("fsdqsqdsf");
} catch(java.rmi.RemoteException ex) {
ex.printStackTrace();
} catch(Exception ex) {
ex.printStackTrace();
}
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ServletWSClient</title>");
out.println("</head>");
out.println("<body>");
out.println(s);
out.println("<h1>Servlet ServletWSClient at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
private pack.EJBWebServiceOne getEJBWebServiceOne() {
pack.EJBWebServiceOne eJBWebServiceOne = null;
//System.out.println("-->"+eJBWebServiceOne.getClass().getInterfaces().toString());
try {
javax.naming.InitialContext ic = new javax.naming.InitialContext();
eJBWebServiceOne = (pack.EJBWebServiceOne) ic.lookup("java:comp/env/service/EJBWebServiceOne");
} catch(javax.naming.NamingException ex) {
ex.printStackTrace();
}
return eJBWebServiceOne;
}
private pack.EJBWebServiceOneSEI getEJBWebServiceOneSEIPort() {
pack.EJBWebServiceOneSEI eJBWebServiceOneSEIPort = null;
try {
eJBWebServiceOneSEIPort = getEJBWebServiceOne().getEJBWebServiceOneSEIPort();
} catch(javax.xml.rpc.ServiceException ex) {
ex.printStackTrace();
}
return eJBWebServiceOneSEIPort;
}
}
Here is what I get:
15:39:09,890 INFO [STDOUT] javax.naming.NamingException: Could not dereference object [Root exception is javax.xml.rpc.JAXRPCException: The service interf ace does not implement javax.xml.rpc.Service: pack.EJBWebServiceOne] 15:39:09,890 INFO [STDOUT] at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1135) 15:39:09,890 INFO [STDOUT] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:690) 15:39:09,890 INFO [STDOUT] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:701) 15:39:09,890 INFO [STDOUT] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572) 15:39:09,890 INFO [STDOUT] at javax.naming.InitialContext.lookup(InitialContext.java:351) 15:39:09,890 INFO [STDOUT] at pack.ServletWSClient.getEJBWebServiceOne(ServletWSClient.java:84) 15:39:09,890 INFO [STDOUT] at pack.ServletWSClient.getEJBWebServiceOneSEIPort(ServletWSClient.java:94) 15:39:09,890 INFO [STDOUT] at pack.ServletWSClient.processRequest(ServletWSClient.java:32) 15:39:09,890 INFO [STDOUT] at pack.ServletWSClient.doGet(ServletWSClient.java:59) 15:39:09,890 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) 15:39:09,890 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 15:39:09,890 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 15:39:09,890 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) 15:39:09,890 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159) 15:39:09,890 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 15:39:09,890 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 15:39:09,906 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) 15:39:09,906 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) 15:39:09,906 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 15:39:09,906 INFO [STDOUT] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) 15:39:09,906 INFO [STDOUT] at java.lang.Thread.run(Thread.java:595) 15:39:09,906 INFO [STDOUT] Caused by: javax.xml.rpc.JAXRPCException: The service interface does not implement javax.xml.rpc.Service: pack.EJBWebServiceOne 15:39:09,906 INFO [STDOUT] at org.jboss.webservice.client.ServiceObjectFactory.getObjectInstance(ServiceObjectFactory.java:256) 15:39:09,906 INFO [STDOUT] at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) 15:39:09,906 INFO [STDOUT] at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1110) 15:39:09,906 INFO [STDOUT] at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1127) 15:39:09,906 INFO [STDOUT] ... 29 more 15:39:09,906 INFO [STDOUT] java.lang.NullPointerException 15:39:09,906 INFO [STDOUT] at pack.ServletWSClient.getEJBWebServiceOneSEIPort(ServletWSClient.java:94) 15:39:09,906 INFO [STDOUT] at pack.ServletWSClient.processRequest(ServletWSClient.java:32) 15:39:09,906 INFO [STDOUT] at pack.ServletWSClient.doGet(ServletWSClient.java:59) 15:39:09,906 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) 15:39:09,906 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 15:39:09,906 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 15:39:09,906 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) 15:39:09,906 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159) 15:39:09,906 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 15:39:09,906 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 15:39:09,906 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) 15:39:09,906 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) 15:39:09,906 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 15:39:09,906 INFO [STDOUT] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) 15:39:09,906 INFO [STDOUT] at java.lang.Thread.run(Thread.java:595)
I am POSITIVE that the eJBWebServiceOne object implements javax.rpc.Service. because I checked it. Then what's wrong?
Thanks in advance,
Julien.