Skip to content

AxiomSoapMessageFactory payloadCaching=false causes org.springframework.ws.soap.axiom.AxiomSoapEnvelope.getBody() to fail [SWS-457] #595

@gregturn

Description

@gregturn

Nikkeri2001 opened SWS-457 and commented

http://forum.springframework.org/showthread.php?t=64350

Hello,

I have problem with AxiomSoapMessageFactory payloadCaching=false.

Spring config is simple as this:

<bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
  <property name="payloadCaching" value="false"/>
</bean>

<bean class="org.springframework.ws.soap.server.endpoint.mapping.SoapActionEndpointMapping">
  <property name="mappings">
    <props>
      <prop key="SoapAction1">endpoint1</prop>
    </props>
  </property>
</bean>

<bean id="wsdl" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
  <property name="schema" ref="schema" />
  <property name="portTypeName" value="resource1" />
  <property name="locationUri" value="/service1/" />
  <property name="targetNamespace" value="my.service" />
  <property name="soapActions">
    <props>
      <prop key="UploadAddressMaterial">SoapAction1</prop>
    </props>
  </property>
</bean>

<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema ">
  <property name="xsd" value="/WEB-INF/schema.xsd" />
</bean>

I'm not using any kind of interceptors.

Actual ws end point extends AbstractStaxStreamPayloadEndpoint but the request doesn't get that far.

I get exception "com.sun.jdi.InvocationException occurred invoking method." when trying to invoke the web service in method org.springframework.ws.soap.axiom.AxiomSoapEnvelope.getBody().

Line 59 SOAPBody axiomBody = getAxiomEnvelope().getBody(); fails some how and the OMException on line 71 is catched. This leads to:

"Nested in org.springframework.ws.soap.axiom.AxiomSoapMessage Exception: Could not write message to OutputStream: problem accessing the parser. Parser already accessed!; nested exception is javax.xml.stream.XMLStreamException: problem accessing the parser. Parser already accessed!:
java.lang.IllegalStateException: Parser already accessed! "

I am running spring ws v.1.5.5 and spring core 2.5.6.

Everything works fine if payloadCaching is true.

Is this a bug? There is a resolved Jira that looks much the same: id #510


Affects: 1.5.5

Attachments:

Referenced from: commits 2c44281

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions