[
https://issues.apache.org/jira/browse/SYNAPSE-366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen resolved SYNAPSE-366.
-------------------------------------
Resolution: Fixed
In this case Axis2 generates a wsdl:message element with a null value for the
name attribute, causing the NPE later. Setting the name of the in-out messages
in ProxyService solves the problem. I also added a regression test for this.
> Retrieving the WSDL for a proxy service without publishWSDL causes
> NullPointerException
> ----------------------------------------------------------------------------------------
>
> Key: SYNAPSE-366
> URL: https://issues.apache.org/jira/browse/SYNAPSE-366
> Project: Synapse
> Issue Type: Bug
> Affects Versions: 1.2
> Reporter: Andreas Veithen
> Assignee: Andreas Veithen
> Priority: Minor
> Fix For: 1.3
>
>
> Example proxy service definition:
> <proxy name="confirm">
> <target>
> <inSequence>
> <drop/>
> </inSequence>
> </target>
> </proxy>
> When trying to retrieve the WSDL using
> http://localhost:8080/soap/confirm?wsdl, the following exception is triggered:
> org.apache.axis2.AxisFault
> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
> at org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1471)
> at
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1334)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.processGet(ServerWorker.java:341)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:192)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:613)
> Caused by: java.lang.NullPointerException
> at
> com.ctc.wstx.sw.BaseNsStreamWriter.doWriteAttr(BaseNsStreamWriter.java:468)
> at
> com.ctc.wstx.sw.BaseNsStreamWriter.writeAttribute(BaseNsStreamWriter.java:230)
> at
> org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeAttribute(MTOMXMLStreamWriter.java:184)
> at
> org.apache.axiom.om.impl.util.OMSerializerUtil.serializeStartpart(OMSerializerUtil.java:473)
> at
> org.apache.axiom.om.impl.util.OMSerializerUtil.serializeStartpart(OMSerializerUtil.java:227)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:915)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:903)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:919)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:903)
> at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:375)
> at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:415)
> at
> org.apache.axis2.util.XMLPrettyPrinter.prettify(XMLPrettyPrinter.java:136)
> at org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1467)
> ... 6 more
> This then causes the following error:
> 2008-06-18 19:06:54,513 [192.168.1.5-orcus.veithen.net] [HttpServerWorker-5]
> ERROR ServerHandler Unexpected HTTP protocol error : Transfer-encoding header
> already present
> org.apache.http.ProtocolException: Transfer-encoding header already present
> at
> org.apache.http.protocol.ResponseContent.process(ResponseContent.java:67)
> at
> org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcessor.java:304)
> at
> org.apache.synapse.transport.nhttp.ServerHandler.commitResponse(ServerHandler.java:212)
> at
> org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncResponse(HttpCoreNIOSender.java:394)
> at
> org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:249)
> at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:530)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.handleException(ServerWorker.java:489)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.processGet(ServerWorker.java:344)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:192)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:613)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]