Results 1 to 3 of 3

Thread: Problem with Java 5

  1. #1

    Default Problem with Java 5

    I have a webapp that uses Spring web services. It works well when compiled with Java 6 and run in Jboss run with Java 6. However, I am required to support Java 5 and having issues when compiling with Java 5 and running in Java 5 / Jboss. I am using the latest patch of Java 5 (12) and jboss-4.0.5.GA.

    I am using a XmlBeansMarshaller to marshal my results. The problem occurs during the marshalling step. I get a different exception depending on whether I attempt to use SOAP 1.1 or 1.2, with either Saaj or Axiom. But I believe all the errors are related because they are similar.

    Does anyone have an idea of what may be causing this? I have debugged it and stepped through everything, but I can't figure out why the SOAP is built incorrectly.

    Here are the stack traces I've seen:
    Code:
    Axiom, SOAP 1.2
    
    2007-10-17 10:35:47,787 [http-0.0.0.0-18573-2] ERROR org.apache.commons.logging.impl.Log4JLogger - Servlet.service() for servlet spring-ws threw exception
    org.apache.axiom.soap.SOAPProcessingException: Disallowed element found inside Envelope : {http://schemas.xmlsoap.org/soap/envelope/}Header
            at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:266)
            at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:180)
            at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:163)
            at org.apache.axiom.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java:552)
            at org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:134)
            at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstElement(OMElementImpl.java:828)
            at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.getHeader(SOAPEnvelopeImpl.java:81)
            at org.springframework.ws.soap.axiom.AxiomSoapEnvelope.getHeader(AxiomSoapEnvelope.java:33)
            at org.springframework.ws.soap.AbstractSoapMessage.getSoapHeader(AbstractSoapMessage.java:41)
            at org.springframework.ws.soap.server.SoapMessageDispatcher.handleHeaders(SoapMessageDispatcher.java:102)
            at org.springframework.ws.soap.server.SoapMessageDispatcher.handleRequest(SoapMessageDispatcher.java:92)
            at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:195)
            at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:158)
            at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:87)
            at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
            at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:158)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
            at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            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.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:595)
    
    
    Axiom, Soap 1.1
    
    
    2007-10-17 10:48:57,706 [http-0.0.0.0-18573-2] ERROR org.apache.commons.logging.impl.Log4JLogger - Servlet.service() for servlet spring-ws threw exception
    java.lang.IllegalArgumentException: Local name may not be null or empty
            at org.apache.axiom.om.impl.llom.OMAttributeImpl.<init>(OMAttributeImpl.java:52)
            at org.apache.axiom.om.impl.llom.OMElementImpl.addAttribute(OMElementImpl.java:532)
            at org.apache.axiom.om.impl.builder.SAXOMBuilder.startElement(SAXOMBuilder.java:111)
            at org.apache.xmlbeans.impl.store.Saver$SaxSaver.emitElement(Saver.java:3363)
            at org.apache.xmlbeans.impl.store.Saver.processElement(Saver.java:456)
            at org.apache.xmlbeans.impl.store.Saver.process(Saver.java:307)
            at org.apache.xmlbeans.impl.store.Saver$SaxSaver.<init>(Saver.java:3280)
            at org.apache.xmlbeans.impl.store.Cursor._save(Cursor.java:559)
            at org.apache.xmlbeans.impl.store.Cursor.save(Cursor.java:2508)
            at org.apache.xmlbeans.impl.values.XmlObjectBase.save(XmlObjectBase.java:174)
            at org.springframework.oxm.xmlbeans.XmlBeansMarshaller.marshalSaxHandlers(XmlBeansMarshaller.java:110)
            at org.springframework.oxm.AbstractMarshaller.marshalSaxResult(AbstractMarshaller.java:231)
            at org.springframework.oxm.AbstractMarshaller.marshal(AbstractMarshaller.java:94)
            at org.springframework.ws.support.MarshallingUtils.marshal(MarshallingUtils.java:84)
            at org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter.marshalResponse(MarshallingMethodEndpointAdapter.java:156)
            at org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter.invokeInternal(MarshallingMethodEndpointAdapter.java:139)
            at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:58)
            at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:211)
            ...same as above from here...
    
    Saaj, Soap 1.1
    
    2007-10-17 11:05:21,418 [http-0.0.0.0-18573-2] ERROR org.apache.commons.logging.impl.Log4JLogger - Servlet.service() for servlet spring-ws threw exception
    java.lang.IllegalArgumentException: SOAPElementImpl expected
            at org.jboss.ws.soap.SOAPBodyImpl.convertToBodyElement(SOAPBodyImpl.java:97)
            at org.jboss.ws.soap.SOAPBodyImpl.appendChild(SOAPBodyImpl.java:165)
            at org.springframework.oxm.xmlbeans.XmlBeansMarshaller.marshalDomNode(XmlBeansMarshaller.java:98)
            at org.springframework.oxm.AbstractMarshaller.marshalDomResult(AbstractMarshaller.java:192)
            at org.springframework.oxm.AbstractMarshaller.marshal(AbstractMarshaller.java:88)
            at org.springframework.ws.support.MarshallingUtils.marshal(MarshallingUtils.java:84)
            at org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter.marshalResponse(MarshallingMethodEndpointAdapter.java:156)
            at org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter.invokeInternal(MarshallingMethodEndpointAdapter.java:139)
            at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:58)
            at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:211)
            ...same as above from here...
    Here is my spring-ws-servlet.xml file:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    	
    	<bean id="xmlbeansMarshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller"/>
    	
    	<bean id="mapToEntitiesEndpoint" class="mypackage.MapToEntitiesEndpoint">
    		<property name="mapToEntitiesService" ref="mapToEntitiesService"/>
    	</bean>
    	
    	<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>
    
    	<bean class="org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointAdapter">
    		<property name="marshaller" ref="xmlbeansMarshaller"/>
    		<property name="unmarshaller" ref="xmlbeansMarshaller"/>
    	</bean>
    	
    	<bean class="org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping"/>
    
    	<bean id="mapToEntities" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition"> 
    	  <property name="wsdl" value="/WEB-INF/wsdl/MapToEntities.wsdl"/>
    	</bean>
    	
    	<bean class="mypackage.mapToEntities.service.ScriptFaultExceptionResolver"/>
    </beans>

  2. #2
    Join Date
    Jul 2005
    Location
    Rotterdam, the Netherlands
    Posts
    1,562

    Default

    There are some issues with the JBoss SAAJ implementation, so I would trust that. Could you try and use the RI instead? See http://static.springframework.org/sp...tml#saaj-jboss

    Of course, this doesn't explain the Axiom issues, but it gives us more info if we know that the RI SAAJ does work.
    Arjen Poutsma

    Spring Web Services Dev Lead
    Please read the FAQ

  3. #3

    Default That fixed it

    Thanks. Using the sun saaj implementation fixed my problem. I wish I had read the FAQ a week ago!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •