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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user