7 Replies Latest reply on Mar 26, 2007 10:06 AM by jcv

    Problem consuming web services

    jcv

      Hi, i created a dummy web service to test jbossws, i can compile and deploy with no trouble, but when i try to cunsume the web service from C#, i got this error on the server

      13:17:14,656 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
      java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
       at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
       at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:79)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:234)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171)
       at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:185)
       at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java
      :664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:619)
      13:17:14,671 ERROR [AbstractServiceEndpointServlet] Error processing web service request
      java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
       at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
       at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:79)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:147)
       at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.toSOAPMessage(SOAPFaultHelperJAXWS.java:223)
       at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:152)
       at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:10
      6)
       at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:536)
       at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:221)
       at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java
      :664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:619)
      13:17:14,671 ERROR [[GreetingWS]] Servlet.service() for servlet GreetingWS threw exception
      java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
       at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
       at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:79)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:147)
       at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.toSOAPMessage(SOAPFaultHelperJAXWS.java:223)
       at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:152)
       at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:10
      6)
       at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:536)
       at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:221)
       at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java
      :664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:619)


      This is my web service
      package org.imed.webservice;
      
      import javax.jws.WebMethod;
      import javax.jws.WebParam;
      import javax.jws.WebService;
      
      @WebService
      public class WebService2 {
       @WebMethod
       public String greetings(@WebParam(name="name") String name) {
       return "Hello "+name;
       }
      
      }


      and to consume i use this code from C#
       private void button1_Click(object sender, EventArgs e)
       {
       G.WebService2Service g = new G.WebService2Service();
       G.greetings n = new G.greetings();
       n.name = textBox1.Text;
       G.greetingsResponse r = new G.greetingsResponse();
       r= g.greetings(n);
       label1.Text = r.@return;
       }


      I get the same problem when i use http://www.soapclient.com/soaptest.html

      I'm running JBoss 4.0.5.GA with JBossWS 1.2.0

        • 1. Re: Problem consuming web services
          peterj

          Try this. In the C# client remove the line:

          G.greetingsResponse r = new G.greetingsResponse();

          and change the following line to:

          G.greetingsResponse r = g.greetings(n);

          Not sure if attempting to get the response before calling the endpoint is what is causing the problem, but is is worth a shot.

          • 2. Re: Problem consuming web services
            jcv

            I added this to the webservice definition

            @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
            

            and the c# code to
            G.WebService2Service g = new G.WebService2Service();
             label1.Text = g.greetings(textBox1.Text);
            and i'm still getting the same error

            • 3. Re: Problem consuming web services
              peterj

              I have a simple web service that does not look much different from yours, and I can access it from C# just fine. (using JBoss AS 4.0.5 w. EJB3 and JBoss WS 1.2)

              What is in your war file? Did you, by any chance, pack any jar files into the war file?

              • 4. Re: Problem consuming web services
                jcv

                The only files on the WAR are the manifes.md, web.xml and the .class of the webservices (there are 2 web services, both of them give me the same error)

                • 5. Re: Problem consuming web services
                  peterj

                  Which JVM are you using?

                  Try running the app server with the -verbose:class JVM option. This will print out the jar file for each loaded class, perhaps there is a web services-related jar file hiding somewhere in your classpath or in some endorsed directory that is causing this problem (look for javax.xml.soap.SOAPMessage).

                  • 6. Re: Problem consuming web services
                    peterj

                    Further research leads me to believe that you are running JDK 6.0. Don't. Use 5.0 instead. JDK 6.0 comes with an implementation of SOAPMessage that spits out the error that you posted. JBossWS comes with its own implementation of SOAPMessage which is not being used because the one from the JDK takes precedence. Run with a 1.5 JVM and you should be just fine.

                    • 7. Re: Problem consuming web services
                      jcv

                      Now ir runs perfect, thx