cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Freeman Fang (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (CXF-3239) idl2wsdl fails if const char is defined in IDL
Date Tue, 11 Jan 2011 13:37:06 GMT

    [ https://issues.apache.org/jira/browse/CXF-3239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980097#action_12980097
] 

Freeman Fang edited comment on CXF-3239 at 1/11/11 8:36 AM:
------------------------------------------------------------

Hi Tosten,

The problem actually is from that in your test2.idl, the const char definition is 
const char MYCHAR = '\0';
ascii code "0"(a subset of ascii code isn't visiable, they are control char) is used for control
character and it's not intended to represent printable information, that said, this character
is invisible, so can't transform this char into wsdl

if I change it to 
const char MYCHAR = '\65';
then the idl2wsdl tool works as expected. the generated wsdl which contain this const char
looks like
<corba:typeMapping targetNamespace="http://cxf.apache.org/bindings/corba/idl/test2/typemap">
    <corba:const xmlns:xs="http://www.w3.org/2001/XMLSchema" value="5" idltype="corba:char"
name="Test2.MYCHAR" type="xs:byte"/>
  </corba:typeMapping>

IMHO this is not a bug.

Best Regards
Freeman

      was (Author: ffang):
    Hi Tosten,

The problem actually is from that in your test2.idl, the const char definition is 
const char MYCHAR = '\0';
ascii code "0" is used for control character and it's not intended to represent printable
information, that said, this character is invisible, so can't transform this char into wsdl

if I change it to 
const char MYCHAR = '\65';
then the idl2wsdl tool works as expected. the generated wsdl which contain this const char
looks like
<corba:typeMapping targetNamespace="http://cxf.apache.org/bindings/corba/idl/test2/typemap">
    <corba:const xmlns:xs="http://www.w3.org/2001/XMLSchema" value="5" idltype="corba:char"
name="Test2.MYCHAR" type="xs:byte"/>
  </corba:typeMapping>

IMHO this is not a bug.

Best Regards
Freeman
  
> idl2wsdl fails if const char is defined in IDL
> ----------------------------------------------
>
>                 Key: CXF-3239
>                 URL: https://issues.apache.org/jira/browse/CXF-3239
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.3.1
>         Environment: CXF-2.3.1, Windows, idl2wsdl 
>            Reporter: Torsten Mielke
>            Assignee: Freeman Fang
>         Attachments: test2.idl
>
>
> Running
> {code}
> idl2wsdl test2.idl
> {code}
> on the attached IDL file, produces:
> {code}
> Error : org.apache.cxf.tools.common.ToolException: WSDLException: faultCode=PARSER_ERROR:
: javax.xml.bind.MarshalException
> {code}
> Running with additional -verbose option prints
> {code}
> idl2wsdl -verbose Test2.idl
> idl2wsdl - Apache CXF 2.3.x-fuse-SNAPSHOT
>  ( module Test2 ( const char MYCHAR   ) )
> Error : org.apache.cxf.tools.common.ToolException: WSDLException: faultCode=PARSER_ERROR:
: javax.xml.bind.MarshalException
> org.apache.cxf.tools.common.ToolException: org.apache.cxf.tools.common.ToolException:
WSDLException: faultCode=PARSER_ERROR: : javax.xml.bind.MarshalE
> xception
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:88)
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:79)
>         at org.apache.cxf.tools.corba.IDLToWSDL.execute(IDLToWSDL.java:73)
>         at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
>         at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58)
>         at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40)
>         at org.apache.cxf.tools.corba.IDLToWSDL.run(IDLToWSDL.java:162)
>         at org.apache.cxf.tools.corba.IDLToWSDL.main(IDLToWSDL.java:170)
> Caused by: org.apache.cxf.tools.common.ToolException: WSDLException: faultCode=PARSER_ERROR:
: javax.xml.bind.MarshalException
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.parseIDL(IDLToWSDLProcessor.java:219)
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:86)
>         ... 7 more
> Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: : javax.xml.bind.MarshalException
>         at org.apache.cxf.wsdl.JAXBExtensionHelper.marshall(JAXBExtensionHelper.java:261)
>         at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown Source)
>         at org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.printExtensibilityElements(WSDLCorbaWriterImpl.java:159)
>         at org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.printDefinition(WSDLCorbaWriterImpl.java:119)
>         at org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.writeWSDL(WSDLCorbaWriterImpl.java:77)
>         at org.apache.cxf.tools.corba.common.WSDLUtils.writeWSDL(WSDLUtils.java:84)
>         at org.apache.cxf.tools.corba.processors.idl.WSDLASTVisitor.writeDefinition(WSDLASTVisitor.java:268)
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.writeDefinitions(IDLToWSDLProcessor.java:297)
>         at org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.parseIDL(IDLToWSDLProcessor.java:217)
>         ... 8 more
> Caused by: javax.xml.bind.MarshalException
>  - with linked exception:
> [com.ctc.wstx.exc.WstxIOException: Invalid null character in text to output]
>         at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:322)
>         at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:172)
>         at org.apache.cxf.wsdl.JAXBExtensionHelper.marshall(JAXBExtensionHelper.java:258)
>         ... 16 more
> Caused by: com.ctc.wstx.exc.WstxIOException: Invalid null character in text to output
>         at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteAttr(BaseNsStreamWriter.java:515)
>         at com.ctc.wstx.sw.BaseNsStreamWriter.writeAttribute(BaseNsStreamWriter.java:224)
>         at org.apache.cxf.wsdl.PrettyPrintXMLStreamWriter.writeAttribute(PrettyPrintXMLStreamWriter.java:115)
>         at com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.attribute(XMLStreamWriterOutput.java:131)
>         at com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl.attribute(XmlOutputAbstractImpl.java:106)
>         at com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:446)
>         at com.sun.xml.bind.v2.runtime.property.AttributeProperty.serializeAttributes(AttributeProperty.java:99)
>         at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeAttributes(ClassBeanInfoImpl.java:356)
>         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:689)
>         at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:65)
>         at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:168)
>         at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:155)
>         at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340)
>         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)
>         at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152)
>         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:157)
>         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189)
>         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:316)
>         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:323)
>         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72)
>         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
>         at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315)
>         ... 18 more
> Caused by: java.io.IOException: Invalid null character in text to output
>         at com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:51)
>         at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623)
>         at com.ctc.wstx.sw.BufferingXmlWriter.writeAttrValue(BufferingXmlWriter.java:1037)
>         at com.ctc.wstx.sw.BufferingXmlWriter.writeAttribute(BufferingXmlWriter.java:883)
>         at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteAttr(BaseNsStreamWriter.java:512)
>         ... 39 more
> Error : org.apache.cxf.tools.common.ToolException: WSDLException: faultCode=PARSER_ERROR:
: javax.xml.bind.MarshalException
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message