Exception when enabling DomInHandler
------------------------------------

         Key: XFIRE-351
         URL: http://jira.codehaus.org/browse/XFIRE-351
     Project: XFire
        Type: Bug

  Components: Core  
    Versions: 1.1-beta-1    
 Environment: java 1.5.0_06 on Mac OS X 10.4.6 (Intel)
    Reporter: Andrew Wright
 Assigned to: Dan Diephouse 
    Priority: Critical


When I add org.codehaus.xfire.util.dom.DOMInHandler to my service:

<service>
        <name>ContentService</name>
        <namespace>http://jivesoftware.com/webservices/</namespace>
        
<serviceClass>com.jivesoftware.forum.webservices.ContentService</serviceClass>
        
<implementationClass>com.jivesoftware.forum.webservices.xfire.ContentServiceImpl</implementationClass>
        <inHandlers>
            <handler handlerClass="org.codehaus.xfire.util.dom.DOMInHandler" />
            <bean class="org.codehaus.xfire.security.wss4j.WSS4JInHandler" 
xmlns="">
                <property name="properties">
                    <props>
                        <prop key="action">UsernameToken</prop>
                        <prop 
key="passwordCallbackClass">com.jivesoftware.forum.webservices.xfire.PasswordHandler</prop>
                    </props>
                </property>
            </bean>
            <handler 
handlerClass="com.jivesoftware.forum.webservices.xfire.ValidateUserTokenHandler"/>
        </inHandlers>
    </service>


I receive the following exception when making a request:

org.w3c.dom.DOMException: DOM002 Illegal character
    at org.apache.xerces.dom.ElementNSImpl.setPrefix(ElementNSImpl.java:284)
    at org.codehaus.xfire.util.STAXUtils.startElement(STAXUtils.java:421)
    at org.codehaus.xfire.util.STAXUtils.readDocElements(STAXUtils.java:496)
    at org.codehaus.xfire.util.STAXUtils.startElement(STAXUtils.java:446)
    at org.codehaus.xfire.util.STAXUtils.readDocElements(STAXUtils.java:496)
    at org.codehaus.xfire.util.STAXUtils.startElement(STAXUtils.java:446)
    at org.codehaus.xfire.util.STAXUtils.readDocElements(STAXUtils.java:496)
    at org.codehaus.xfire.util.STAXUtils.read(STAXUtils.java:395)
    at org.codehaus.xfire.util.dom.DOMInHandler.invoke(DOMInHandler.java:42)
    at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:98)
    at 
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:60)
    at 
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
    at 
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:287)
    at 
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:146)
    at 
org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:110)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    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 
com.jivesoftware.base.util.ApplicationInitializedFilter.doFilter(ApplicationInitializedFilter.java:58)
    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.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:613)


This seems to be because there is no namespace prefix for operation portion the 
request. However why should this matter, the service works properly when the 
handler is removed.

Here is the request I am making:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <getForumMessage xmlns="http://jivesoftware.com/webservices/";>
            <in0>1</in0>
        </getForumMessage>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

I made this request using Oxygen xml client, however I get the same problem if 
I use xfire as the client.

If I manually change the request to this it works:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:jive="https://jivesoftware.com/webservices"; >
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <jive:getForumMessage>
            <jive:in0>1</jive:in0>
        </jive:getForumMessage>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to