Was Du heute kannst besorgen, verschiebe nicht auf morgen... https://issues.apache.org/jira/browse/AXIS2-4402
Created a JIRA and fixed the issue. Andreas On Mon, Jun 22, 2009 at 21:45, Boris Klug<bo...@klg.de> wrote: > Hi! > > Yes will do this tomorrow. > > Thanks for your help > > Am 22.06.2009 um 21:08 schrieb Andreas Veithen: > >> Yes I know. It needs to be fixed in Axis2. Can you please open a JIRA >> report? >> >> Andreas >> >> On Mon, Jun 22, 2009 at 20:57, Boris Klug<bo...@klg.de> wrote: >>> >>> Hi! >>> >>> Its not my code, its the code generated by wsdl2java - so what can I do? >>> >>> Am 22.06.2009 um 16:51 schrieb Andreas Veithen: >>> >>>> Anyway, the code is wrong and should use getElementText instead of >>>> getText to make sure that it gives the expected result even if the >>>> underlying parser is not coalescing. This would also solve the problem >>>> with empty text (getElementText returns an empty string in that case) >>>> and I think that is what the generated code does. Note that your last >>>> comment implies that anyType handling uses totally different code than >>>> the processing of typed elements. This is really strange! >>>> >>>> Andreas >>>> >>>> On Mon, Jun 22, 2009 at 14:14, Boris Klug<bo...@klg.de> wrote: >>>>> >>>>> Hi! >>>>> >>>>> I created a wsdl which contains a attribute/value pair where the >>>>> value is definied as xsd:anyType: >>>>> >>>>> <xs:complexType name="ZAttributeValue"> >>>>> <xs:sequence> >>>>> <xs:element name="name" type="xs:string" /> >>>>> <xs:element name="displayName" nillable="true" type="xs:string" /> >>>>> <xs:element name="value" nillable="true" type="xs:anyType" /> >>>>> <xs:element name="className" nillable="true" type="xs:string" /> >>>>> </xs:sequence> >>>>> </xs:complexType> >>>>> >>>>> Now I used wsdl2java to create client and server code using adb data >>>>> binding. >>>>> >>>>> When value is "" (=empty string), the client throws this exception: >>>>> >>>>> Exception in thread "main" org.apache.axis2.AxisFault: Current state >>>>> END_ELEMENT is not among the statesCHARACTERS, COMMENT, CDATA, SPACE, >>>>> ENTITY_REFERENCE, DTD valid for getText() >>>>> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub.fromOM(ZederbasicServiceStub.java:8846) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub.getZEDERObjects(ZederbasicServiceStub.java:1028) >>>>> at ZederBasicClientTest.main(ZederBasicClientTest.java:36) >>>>> Caused by: java.lang.IllegalStateException: Current state END_ELEMENT >>>>> is >>>>> not among the statesCHARACTERS, COMMENT, CDATA, SPACE, >>>>> ENTITY_REFERENCE, DTD >>>>> valid for getText() >>>>> at >>>>> >>>>> com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.getText(XMLStreamReaderImpl.java:1052) >>>>> at >>>>> >>>>> org.apache.axiom.om.impl.llom.OMStAXWrapper.getText(OMStAXWrapper.java:418) >>>>> at >>>>> >>>>> org.apache.axis2.databinding.utils.ConverterUtil.getAnyTypeObject(ConverterUtil.java:1528) >>>>> at de.debeka.repository.zws >>>>> >>>>> In this case, the soap message looks like this: >>>>> >>>>> <attributes xmlns="http://model.zws2.boq.debeka.gen/xsd"> >>>>> <name>HINWEIS</name> >>>>> <displayName>Hinweis</displayName> >>>>> <value xmlns:s45="http://www.w3.org/2001/XMLSchema-instance" >>>>> xmlns:s46="http://www.w3.org/2001/XMLSchema" s45:type="s46:string"> >>>>> </value> >>>>> <className>java.lang.String</className> >>>>> </attributes> >>>>> >>>>> When value is set to null, I get this exception: >>>>> >>>>> Exception in thread "main" org.apache.axis2.AxisFault: >>>>> org.apache.axis2.databinding.ADBException: Unexpected subelement value >>>>> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub.fromOM(ZederbasicServiceStub.java:8846) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub.getZEDERObjects(ZederbasicServiceStub.java:1028) >>>>> at ZederBasicClientTest.main(ZederBasicClientTest.java:36) >>>>> Caused by: java.lang.Exception: >>>>> org.apache.axis2.databinding.ADBException: Unexpected subelement value >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub$ZAttributeValue$Factory.parse(ZederbasicServiceStub.java:2583) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub$ZDataObject$Factory.parse(ZederbasicServiceStub.java:7596) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub$GetZEDERObjectsResponse$Factory.parse(ZederbasicServiceStub.java:4833) >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub.fromOM(ZederbasicServiceStub.java:8833) >>>>> ... 2 more >>>>> Caused by: org.apache.axis2.databinding.ADBException: Unexpected >>>>> subelement value >>>>> at >>>>> >>>>> de.mypackage.ZederbasicServiceStub$ZAttributeValue$Factory.parse(ZederbasicServiceStub.java:2569) >>>>> ... 5 more >>>>> >>>>> The soap message is: >>>>> >>>>> <attributes xmlns="http://model.zws2.boq.debeka.gen/xsd"> >>>>> <name>KLASSE</name> >>>>> <displayName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>> xsi:nil="1" /> >>>>> <value xmlns:s29="http://www.w3.org/2001/XMLSchema-instance" >>>>> xmlns:s30="http://www.w3.org/2001/XMLSchema" >>>>> s29:type="s30:string">C_Jobplan</value> >>>>> <className>java.lang.Integer</className> >>>>> </attributes> >>>>> >>>>> >>>>> I tried Axis2 1.4.1 and the new 1.5 version. The whole problem with nil >>>>> and >>>>> empty string values only exists with anyType, not if the element is >>>>> declared >>>>> as string or something else. >>>>> >>>>> I really need anyType here. >>>>> >>>>> Thank you for your help in advance. >>>>> >>>>> >>>>> -- >>>>> Boris Klug, Koblenz, bo...@klg.de, Fax: 0261-1334249 >>>>> >>> >>> -- >>> Boris Klug, bo...@klg.de >>> >>> >>> >>> > > -- > Boris Klug, bo...@klg.de > > > >