[ http://jira.codehaus.org/browse/XFIRE-828?page=all ]

Dan Diephouse updated XFIRE-828:
--------------------------------

    Fix Version/s: 1.2.5

Thanks for filing this! Scheduling for 1.2.5.

> JDOM Stream writer does not properly handle namespace on attributes of element
> ------------------------------------------------------------------------------
>
>                 Key: XFIRE-828
>                 URL: http://jira.codehaus.org/browse/XFIRE-828
>             Project: XFire
>          Issue Type: Bug
>          Components: JAXB 2.0
>    Affects Versions: 1.2.2
>         Environment: Linux, Eclipse 3.2, xfire 1.2.2
>            Reporter: Yogesh Chawla
>         Assigned To: Dan Diephouse
>             Fix For: 1.2.5
>
>
> I autogenerated an xfire client using the Eclipse plugin.  When I go to 
> invoke my webservice, I get the following error:
> Caused by: org.jdom.IllegalNameException: The name "" is not legal for 
> JDOM/XML attribute namespaces: An attribute namespace without a prefix can 
> only be the NO_NAMESPACE namespace.
> at org.jdom.Attribute.setNamespace(Attribute.java:456)
> at org.jdom.Attribute.<init>(Attribute.java:206)
> at 
> org.codehaus.xfire.util.stax.JDOMStreamWriter.writeAttribute(JDOMStreamWriter.java:124)
> The app crashes because the 'namespace' attribute is "".  There are two 
> methods for 'writeAttribute'.  One that accepts a prefix and one that does 
> not:
> public void writeAttribute(String prefix, String namespace, String local, 
> String value)
>         throws XMLStreamException
>     {
>         currentNode.setAttribute(new Attribute(local, value, 
> Namespace.getNamespace(prefix, namespace)));
>     }
>     public void writeAttribute(String namespace, String local, String value)
>         throws XMLStreamException
>     {
>         currentNode.setAttribute(new Attribute(local, value, 
> Namespace.getNamespace(namespace)));
>     }
> Perhaps the XMLStreamWriterOutput.attribute is calling the wrong method.  The 
> two attributes where the failure occurs
> should use the default namespace for the element but do not.  
> To test this, one can generated code from this WSDL:
> https://wijis.wisconsin.gov/wsdl/PointerCountService.wsdl
> The client can then instantiate a Message Tracking Info object and call the 
> service like so:
>     public static final void main(String args[])
>     {
>       PointerCountServiceClient myClient = new PointerCountServiceClient();
>       
>       PointerManagementInvocationType pointerCount = new 
> PointerManagementInvocationType(); 
>       
> pointerCount.setSubmitterURI("http://wijis.wisconsin.gov/names/operators";);
>       
>        WijisMessageTrackingInfoType messageTrackingInfo = new 
> WijisMessageTrackingInfoType();
>        BigInteger convSequence = BigInteger.ZERO;
>        BigInteger reqInvocationNumber = BigInteger.valueOf(10000);
>        BigInteger serviceInvocationNumber = BigInteger.valueOf(1);
>        
>        messageTrackingInfo.setAdHocUserURI("http://[EMAIL 
> PROTECTED]/names/directories/");
>        
>        
>        messageTrackingInfo.setBranchStack("0");
>        messageTrackingInfo.setConvSeq(convSequence);
>        
>        System.out.println(messageTrackingInfo.getBranchStack());
>        
>        
> messageTrackingInfo.setCurrentSendingOperatorURI("http://wijis.wisconsin.gov/names/operators/";);
>        
> messageTrackingInfo.setCurrentServiceDefURI("http://wijis.wisconsin.gov/gateway/services/Pointer/request/countMyPointers/";);
>        messageTrackingInfo.setCurrentServiceLabel("dont know");
>        
> messageTrackingInfo.setCurrentServiceProviderURI("http://wijis.wisconsin.gov/names/operators/";);
>        messageTrackingInfo.setInitialUserURI("http://[EMAIL 
> PROTECTED]/names/directories/");
>        messageTrackingInfo.setRequesterInvocationNum(reqInvocationNumber);
>        messageTrackingInfo.setServiceInvocationNum(serviceInvocationNumber);
>        messageTrackingInfo.setServiceLabel("dont know");
>        
> messageTrackingInfo.setServiceDefURI("http://wijis.wisconsin.gov/gateway/services/Pointer/request/countMyPointers/";);
>        
> messageTrackingInfo.setServiceProviderURI("http://wijis.wisconsin.gov/names/operators/";);
>        
> messageTrackingInfo.setServiceRequesterURI("http://wijis.wisconsin.gov/names/operators/";);
>        
>        Holder<WijisMessageTrackingInfoType>  messageTrackingInfo2 = new 
> Holder();
>        
>       try {
>               PointerCountResponseType response = 
> myClient.getPointerCountServiceSOAP("http://localhost:8080/xfire/PointerCount";).pointerCount(pointerCount,
>  messageTrackingInfo, messageTrackingInfo2);
>               System.out.println(response.getRecordCount());
>       } catch (PointerCountError e) {
>                       // TODO Auto-generated catch block
>                       e.printStackTrace();
>               }
> }
> After this the error will occur on the attributes: convSeq and branchStack.  
> Both of these attributes use the default namespace of the element 
> messageTrackingInfo.  The default namespace is:        
> http://wijis.wisconsin.gov/specs/schemas/message/v1.0/2006-05-25/

-- 
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

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to