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

Reply via email to