Hi. I'm trying to make a simple implementation of a webservice using document/literal and J2Me CLDC1.1 MIDP2.0
I've been using a combination of jbossws and suns wireless toolkit, but the errors are the same. I used wstools to generate all the essential stuff. The problem is I'm getting this exceptionn when running it on a device emulator included with the wtk: | java.rmi.MarshalException: (1)Missing end tag for Body or Envelope | at com.stubs.TrivialService_Stub.purchase(+75) | at com.apps.TestClient.startApp(+47) | at javax.microedition.midlet.MIDletProxy.startApp(+7) | at com.sun.midp.midlet.Scheduler.schedule(+270) | at com.sun.midp.main.Main.runLocalClass(+28) | at com.sun.midp.main.Main.main(+116) | I've verified the web service with a j2se client, runs smoothly without any hickups. This is my simple MIDlet client: | package com.apps; | | import java.rmi.RemoteException; | | import javax.microedition.lcdui.Display; | import javax.microedition.lcdui.Form; | import javax.microedition.midlet.MIDlet; | import javax.microedition.midlet.MIDletStateChangeException; | import javax.xml.rpc.Stub; | | import com.stubs.TrivialService; | import com.stubs.TrivialService_Stub; | | public class TestClient extends MIDlet { | | protected void startApp() throws MIDletStateChangeException { | Form form = new Form("First test"); | form.append("HEllo Oinkers!"); | Display.getDisplay(this).setCurrent(form); | | | TrivialService_Stub stub = new TrivialService_Stub(); | TrivialService ts = (TrivialService)stub; | stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://10.0.102.112:8080/warme?wsdl"); | try { | ts.purchase("Person","product"); | } catch (RemoteException e) { | e.printStackTrace(); | | } | } | | protected void pauseApp() { | // TODO Auto-generated method stub | | } | | protected void destroyApp(boolean arg0) throws MIDletStateChangeException { | | } | | } | and this is the stubs: | // This class was generated by 172 StubGenerator. | // Contents subject to change without notice. | // @generated | | package com.stubs; | | import javax.xml.rpc.JAXRPCException; | import javax.xml.namespace.QName; | import javax.microedition.xml.rpc.Operation; | import javax.microedition.xml.rpc.Type; | import javax.microedition.xml.rpc.ComplexType; | import javax.microedition.xml.rpc.Element; | | public class TrivialService_Stub implements com.stubs.TrivialService, javax.xml.rpc.Stub { | private String[] _propertyNames; | private Object[] _propertyValues; | | public TrivialService_Stub() { | _propertyNames = new String[] {ENDPOINT_ADDRESS_PROPERTY}; | _propertyValues = new Object[] {"http://10.0.102.112:8080/warme"}; | } | | public void _setProperty(String name, Object value) { | int size = _propertyNames.length; | for (int i = 0; i < size; ++i) { | if (_propertyNames.equals(name)) { | _propertyValues = value; | return; | } | } | // Need to expand our array for a new property | String[] newPropNames = new String[size + 1]; | System.arraycopy(_propertyNames, 0, newPropNames, 0, size); | _propertyNames = newPropNames; | Object[] newPropValues = new Object[size + 1]; | System.arraycopy(_propertyValues, 0, newPropValues, 0, size); | _propertyValues = newPropValues; | | _propertyNames[size] = name; | _propertyValues[size] = value; | } | | public Object _getProperty(String name) { | for (int i = 0; i < _propertyNames.length; ++i) { | if (_propertyNames.equals(name)) { | return _propertyValues; | } | } | if (ENDPOINT_ADDRESS_PROPERTY.equals(name) || USERNAME_PROPERTY.equals(name) || PASSWORD_PROPERTY.equals(name)) { | return null; | } | if (SESSION_MAINTAIN_PROPERTY.equals(name)) { | return new java.lang.Boolean(false); | } | throw new JAXRPCException("Stub does not recognize property: "+name); | } | | protected void _prepOperation(Operation op) { | for (int i = 0; i < _propertyNames.length; ++i) { | op.setProperty(_propertyNames, _propertyValues.toString()); | } | } | | // | // Begin user methods | // | | public java.lang.String purchase(java.lang.String string_1, java.lang.String string_2) throws java.rmi.RemoteException { | // Copy the incoming values into an Object array if needed. | Object[] inputObject = new Object[2]; | inputObject[0] = string_1; | inputObject[1] = string_2; | | Operation op = Operation.newInstance(_qname_wrapped_purchase, _type_purchase, _type_purchaseResponse); | _prepOperation(op); | op.setProperty(Operation.SOAPACTION_URI_PROPERTY, ""); | Object resultObj; | try { | resultObj = op.invoke(inputObject); | } catch (JAXRPCException e) { | Throwable cause = e.getLinkedCause(); | if (cause instanceof java.rmi.RemoteException) { | System.out.println("this is where it's at!"); // this is the feil! | System.out.println(_type_purchaseResponse.toString()); | throw (java.rmi.RemoteException) cause; | } | throw e; | } | java.lang.String result; | // Convert the result into the right Java type. | // Unwrapped return value | Object resultObj2 = ((Object[])resultObj)[0]; | result = (java.lang.String)resultObj2; | return result; | } | // | // End user methods | // | | protected static final QName _qname_String_1 = new QName("", "String_1"); | protected static final QName _qname_String_2 = new QName("", "String_2"); | protected static final QName _qname_result = new QName("", "result"); | protected static final QName _qname_wrapped_purchase = new QName("http://org.jboss.ws/samples/docstyle/wrapped", "purchase"); | protected static final QName _qname_purchase = new QName("http://org.jboss.ws/samples/docstyle/wrapped/types", "purchase"); | protected static final QName _qname_purchaseResponse = new QName("http://org.jboss.ws/samples/docstyle/wrapped/types", "purchaseResponse"); | protected static final Element _type_purchase; | protected static final Element _type_purchaseResponse; | static { | // Create all of the Type's that this stub uses, once. | Element _type_String_1; | _type_String_1 = new Element(_qname_String_1, Type.STRING, 1, 1, true); | Element _type_String_2; | _type_String_2 = new Element(_qname_String_2, Type.STRING, 1, 1, true); | ComplexType _complexType_purchase; | _complexType_purchase = new ComplexType(); | _complexType_purchase.elements = new Element[2]; | _complexType_purchase.elements[0] = _type_String_1; | _complexType_purchase.elements[1] = _type_String_2; | _type_purchase = new Element(_qname_purchase, _complexType_purchase); | Element _type_result; | _type_result = new Element(_qname_result, Type.STRING, 1, 1, true); | ComplexType _complexType_purchaseResponse; | _complexType_purchaseResponse = new ComplexType(); | _complexType_purchaseResponse.elements = new Element[1]; | _complexType_purchaseResponse.elements[0] = _type_result; | _type_purchaseResponse = new Element(_qname_purchaseResponse, _complexType_purchaseResponse); | } | | } | I've also used a network monitor to intercept the data beeing sent over the wire: the request: | <?xml version="1.0" encoding="utf-8"?> | <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" | xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://org.jboss.ws/samples/docstyle/wrapped/types"> | <soap:Body> | <tns:purchase> | <String_1 xmlns="">person</String_1> | <String_2 xmlns="">product</String_2> | </tns:purchase> | </soap:Body> | </soap:Envelope> | and the response: | <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> | <env:Header/> | <env:Body> | <ns1:purchaseResponse xmlns:ns1='http://org.jboss.ws/samples/docstyle/wrapped/types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> | <result>okPersonProduct</result> | </ns1:purchaseResponse> | </env:Body> | </env:Envelope> | hopefully someone can see whats wrong here.. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3945257#3945257 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3945257 ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user