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

Reply via email to