You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Dominic Battre (JIRA)" <ax...@ws.apache.org> on 2007/08/06 10:43:59 UTC

[jira] Commented: (AXIS-2411) when soap header is set like soapenv:actor="" with wss4j axis is throwing exception

    [ https://issues.apache.org/jira/browse/AXIS-2411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12517856 ] 

Dominic Battre commented on AXIS-2411:
--------------------------------------

I think that this is a bug in the Axis implementation (persists in Axis 1.4).

The org.apache.axis.message.SOAPHeaderElement has in its constructor public SOAPHeaderElement(Element elem) the lines

        QName roleQName = soapConstants.getRoleAttributeQName();
        actor = elem.getAttributeNS(roleQName.getNamespaceURI(),
                                    roleQName.getLocalPart());
//        if (actor == null) {
//            actor = "";
//        }

elem.getAttributeNS returns "" if no such attribute exists.  This causes the serialization to create the soap:actor="" attribute.

I think that this contradicts the SOAP specification because it explicitly assumes that the soap:actor attribute may be *missing* (not empty) as you can see here http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383499

I propose to change the lines
//        if (actor == null) {
//            actor = "";
//        }
to
if ( "".equals(actor) ) {
  actor = null;
}

I have tested this and it solved our problems of Active BPEL calling a Globus Toolkit Service.

> when soap header is set like soapenv:actor=""  with wss4j axis is throwing exception
> ------------------------------------------------------------------------------------
>
>                 Key: AXIS-2411
>                 URL: https://issues.apache.org/jira/browse/AXIS-2411
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>            Reporter: prasanth r marreddy
>
> when soap header is set like soapenv:actor=""  with wss4j axis is throwing exception 
> this is the header 
> <?xml version="1.0" encoding="UTF-8"?>
> <soap:Envelope xmlns:rep="http://www.alfresco.org/ws/service/repository/1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
>    <soap:Header>
>       <wsse:Security  soap:actor=""  soap:mustUnderstand="0">
>          <wsse:UsernameToken>
>             <wsse:Username>admin</wsse:Username>
>             <wsse:Password Type="wsse:PasswordText">TICKET_2dabeefd-9f85-11da-8848-a5b39e6b8248</wsse:Password>
>             <wsse:Nonce/>
>          </wsse:UsernameToken>
>       </wsse:Security>
>    </soap:Header>
>    <soap:Body>
>       <rep:getStores/>
>    </soap:Body>
> </soap:Envelope>
> it is giving me this server error
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>    <soapenv:Body>
>       <soapenv:Fault>
>          <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server</faultcode>
>          <faultstring>Server Error</faultstring>
>          <detail>
>             <ns2:stackTrace xmlns:ns2="http://xml.apache.org/axis/">Server Error
> 	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:473)
> 	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> 	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> 	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.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:868)
> 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
> 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> 	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)</ns2:stackTrace>
>             <ns3:hostname xmlns:ns3="http://xml.apache.org/axis/">prasanth</ns3:hostname>
>          </detail>
>       </soapenv:Fault>
>    </soapenv:Body>
> </soapenv:Envelope>

-- 
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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org