You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Jacques Le Roux (JIRA)" <ji...@apache.org> on 2011/02/17 11:33:25 UTC
[jira] Commented: (OFBIZ-3385) Axis2 integration returns
"Unsupported Content-Type: text/html;charset=utf-8 Supported ones are:
[text/xml]"
[ https://issues.apache.org/jira/browse/OFBIZ-3385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995746#comment-12995746 ]
Jacques Le Roux commented on OFBIZ-3385:
----------------------------------------
Hi Chris,
I will certainly have to work on this, any update?
Thanks
> Axis2 integration returns "Unsupported Content-Type: text/html;charset=utf-8 Supported ones are: [text/xml]"
> ------------------------------------------------------------------------------------------------------------
>
> Key: OFBIZ-3385
> URL: https://issues.apache.org/jira/browse/OFBIZ-3385
> Project: OFBiz
> Issue Type: Bug
> Components: framework
> Affects Versions: SVN trunk
> Reporter: chris snow
> Attachments: patch.txt, patch2.txt
>
>
> I have setup the findPartiesById service to export="true" and tried to call the web service using Netbeans 6.5.
> I received the following error message:
> {code}
> com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html;charset=utf-8 Supported ones are: [text/xml]
> at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284)
> at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
> at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
> at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
> at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
> at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
> at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
> at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
> at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
> at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
> at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
> at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
> at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
> at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
> at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
> at $Proxy28.findPartiesById(Unknown Source)
> at javaapplication7.Main.main(Main.java:74)
> {code}
> Watching the tcp steam with wireshark, I can see that the prefix ns2 is added to the map-Entry items:
> {code}
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:findPartiesById xmlns:ns2="http://ofbiz.apache.org/service/">
> <map-Map>
> <ns2:map-Entry>
> <ns2:map-Key>
> <ns2:std-String value="idToFind"/>
> </ns2:map-Key>
> <ns2:map-Value>
> <ns2:std-String value="admin"/>
> </ns2:map-Value>
> </ns2:map-Entry>
> <ns2:map-Entry>
> <ns2:map-Key>
> <ns2:std-String value="login.username"/>
> </ns2:map-Key>
> <ns2:map-Value>
> <ns2:std-String value="admin"/>
> </ns2:map-Value>
> </ns2:map-Entry>
> <ns2:map-Entry>
> <ns2:map-Key>
> <ns2:std-String value="login.password"/>
> </ns2:map-Key>
> <ns2:map-Value>
> <ns2:std-String value="ofbiz"/>
> </ns2:map-Value>
> </ns2:map-Entry>
> </map-Map>
> </ns2:findPartiesById>
> </S:Body>
> </S:Envelope>
> {code}
> If I copy this soap message and paste into SoapUI, the soap call fails. However, if I strip off the ns2 prefix from the map-Entry items (as below), the call succeeds:
> {code}
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:findPartiesById xmlns:ns2="http://ofbiz.apache.org/service/">
> <map-Map>
> <map-Entry>
> <map-Key>
> <std-String value="idToFind"/>
> </map-Key>
> <map-Value>
> <std-String value="admin"/>
> </map-Value>
> </map-Entry>
> <map-Entry>
> <map-Key>
> <std-String value="login.username"/>
> </map-Key>
> <map-Value>
> <std-String value="admin"/>
> </map-Value>
> </map-Entry>
> <map-Entry>
> <map-Key>
> <std-String value="login.password"/>
> </map-Key>
> <map-Value>
> <std-String value="ofbiz"/>
> </map-Value>
> </map-Entry>
> </map-Map>
> </ns2:findPartiesById>
> </S:Body>
> </S:Envelope>
> {code}
> My java class is:
> {code}
> package javaapplication7;
> import org.apache.ofbiz.service.MapEntry;
> import org.apache.ofbiz.service.MapKey;
> import org.apache.ofbiz.service.MapMap;
> import org.apache.ofbiz.service.MapValue;
> import org.apache.ofbiz.service.StdString;
> public class Main {
> public static void main(String[] args) {
> try {
> org.apache.ofbiz.service.FindPartiesById service = new org.apache.ofbiz.service.FindPartiesById();
> org.apache.ofbiz.service.FindPartiesByIdPortType port = service.getFindPartiesByIdPort();
> StdString keyString = new StdString();
> keyString.setValue("idToFind");
> MapKey mapKey = new MapKey();
> mapKey.setStdString(keyString);
>
> StdString valueString = new StdString();
> valueString.setValue("admin");
>
> MapValue mapValue = new MapValue();
> mapValue.setStdString(valueString);
> MapEntry mapEntry = new MapEntry();
> mapEntry.setMapKey(mapKey);
> mapEntry.setMapValue(mapValue);
> StdString keyStringLogin = new StdString();
> keyStringLogin.setValue("login.username");
> MapKey mapKeyLogin = new MapKey();
> mapKeyLogin.setStdString(keyStringLogin);
> StdString valueStringLogin = new StdString();
> valueStringLogin.setValue("admin");
> MapValue mapValueLogin = new MapValue();
> mapValueLogin.setStdString(valueStringLogin);
> MapEntry mapEntryLogin = new MapEntry();
> mapEntryLogin.setMapKey(mapKeyLogin);
> mapEntryLogin.setMapValue(mapValueLogin);
> StdString keyStringPassword = new StdString();
> keyStringPassword.setValue("login.password");
> MapKey mapKeyPassword = new MapKey();
> mapKeyPassword.setStdString(keyStringPassword);
> StdString valueStringPassword = new StdString();
> valueStringPassword.setValue("ofbiz");
> MapValue mapValuePassword = new MapValue();
> mapValuePassword.setStdString(valueStringPassword);
> MapEntry mapEntryPassword = new MapEntry();
> mapEntryPassword.setMapKey(mapKeyPassword);
> mapEntryPassword.setMapValue(mapValuePassword);
> MapMap myMap = new MapMap();
> myMap.getMapEntry().add(mapEntry);
> myMap.getMapEntry().add(mapEntryLogin);
> myMap.getMapEntry().add(mapEntryPassword);
> javax.xml.ws.Holder<org.apache.ofbiz.service.MapMap> mapMap =
> new javax.xml.ws.Holder<org.apache.ofbiz.service.MapMap>(myMap);
> port.findPartiesById(mapMap);
> } catch (Exception ex) {
> ex.printStackTrace();
> }
> }
> }
> {code}
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira