9 Replies Latest reply: Oct 29, 2013 2:22 PM by Omar BOURAS RSS

JBoss 5.0.1.GA, JBossWS 3.0.5, JDK 1.6 - java.lang.Unsupport

Andreas Fluegge Newbie

Hello!

I'm trying to call a simple web service with following configuration: 5.0.1.GA, JBossWS 3.0.5, JDK 1.6.0_14. Details below.

Callin the service gets the following exception:

11:33:16,163 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:445)
 at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:82)
 at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:215)
 at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:455)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
 at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
 at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Thread.java:619)


I suppose that the SOAPMessage class comes from the JDK 1.6 which is incompatible with the one from JBossWS (in jbossws-native-saaj.jar). The jar file is located in the <JBOSS_HOME>/lib/endorsed dir. All suggestions to solve this problem are to copy the jar files to the endorsed dir, but they are already there!

Can anybody help me?

Thanks,
Andreas


This is the source:

package test;

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

import org.apache.commons.logging.Log;
import org.jboss.seam.annotations.Logger;

@Stateless
@WebService(name = "testService", serviceName = "testService")
public class TestService implements TestServiceRemote {

 @Logger
 private Log log;

 @WebMethod
 public String testService(String name) {
 String txt = "testService:" + name;

 log.info("testService:" + name);

 return txt;
 }
}

package test;

import javax.ejb.Remote;
import javax.jws.WebMethod;

@Remote
public interface TestServiceRemote {
 @WebMethod
 public String testService(String name);
}


Deployment is no problem, calling the http:.../TestService?wsdl URL gets the following:

<definitions name='testService' targetNamespace='http://test/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://test/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
 <types>
 <xs:schema targetNamespace='http://test/' version='1.0' xmlns:tns='http://test/' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
 <xs:element name='testService' type='tns:testService'/>
 <xs:element name='testServiceResponse' type='tns:testServiceResponse'/>
 <xs:complexType name='testService'>
 <xs:sequence>
 <xs:element minOccurs='0' name='arg0' type='xs:string'/>
 </xs:sequence>

 </xs:complexType>
 <xs:complexType name='testServiceResponse'>
 <xs:sequence>
 <xs:element minOccurs='0' name='return' type='xs:string'/>
 </xs:sequence>
 </xs:complexType>
 </xs:schema>
 </types>
 <message name='testService_testServiceResponse'>

 <part element='tns:testServiceResponse' name='testServiceResponse'></part>
 </message>
 <message name='testService_testService'>
 <part element='tns:testService' name='testService'></part>
 </message>
 <portType name='testService'>
 <operation name='testService' parameterOrder='testService'>
 <input message='tns:testService_testService'></input>
 <output message='tns:testService_testServiceResponse'></output>

 </operation>
 </portType>
 <binding name='testServiceBinding' type='tns:testService'>
 <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
 <operation name='testService'>
 <soap:operation soapAction=''/>
 <input>
 <soap:body use='literal'/>
 </input>

 <output>
 <soap:body use='literal'/>
 </output>
 </operation>
 </binding>
 <service name='testService'>
 <port binding='tns:testServiceBinding' name='testServicePort'>
 <soap:address location='http://127.0.0.1:8080/spaceserver-spaceserver/TestService'/>
 </port>

 </service>
</definitions>