hi all,
  i m fighting trying to have myJ2ME cdlient to communicate iwht my EJB3 
Webservice..
i noticed posts about http chunking, so i have disabled http chunking by 
setting this in deploy/tomcat/server.xml


this is the interface of my WS

  | /**
  |  * Copyright @ 2006
  |  * By Marco Mistroni
  |  * Session EJB test 
  |  */
  | package com.mm.j2me.ejb;
  | 
  | import java.util.Date;
  | import java.util.List;
  | 
  | import javax.ejb.Remote;
  | import javax.ejb.Stateless;
  | import javax.jws.WebService;
  | import javax.jws.WebMethod;
  | import javax.jws.WebParam;
  | import javax.jws.WebResult;
  | import javax.jws.soap.SOAPBinding;
  | 
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | import javax.persistence.Query;
  | 
  | import org.jboss.annotation.ejb.RemoteBinding;
  | //import org.jboss.ws.annotation.PortComponent;
  | 
  | import com.mm.j2me.core.Agency;
  | import com.mm.j2me.core.JobApplication;
  | import com.mm.j2me.core.Opportunity;
  | import com.mm.j2me.core.User;
  | import com.mm.j2me.core.WSFacade;
  | 
  | @WebService (name="WSRemoteSEI",
  |                      serviceName="WSFacade",
  |                 targetNamespace="http://org.jboss.ws/ejb3ws";)
  | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
  |             use=SOAPBinding.Use.LITERAL)
  | 
  |          
  | @Stateless
  | @Remote (WSFacade.class)
  | @RemoteBinding( jndiBinding="/ejb3/WSRemoteSEI")
  | 
  | public class TestFacade implements WSFacade{
  | 
  |     @PersistenceContext
  |     EntityManager em;
  |     public void deleteAgency(Agency agency) {
  |             // TODO Auto-generated method stub
  |             Query query = getQuery("findAgencyById");
  |             query.setParameter("id", agency.getId());
  |             Agency agencyToDelete = (Agency)query.getSingleResult();
  |             em.remove(agencyToDelete);
  |     }
  | 
  |     public void deleteJobApplication(JobApplication app) {
  |             Query query = getQuery("findJAById");
  |             query.setParameter("id", app.getId());
  |             JobApplication jaToDelete = 
(JobApplication)query.getSingleResult();
  |             em.remove(jaToDelete);
  | 
  |     }
  | 
  |     public void deleteOpportunity(Opportunity opp) {
  |             Query query = getQuery("findOpportunityById");
  |             query.setParameter("id", opp.getId());
  |             Opportunity oppToDelete = (Opportunity)query.getSingleResult();
  |             em.remove(oppToDelete);
  | 
  |     }
  | 
  |     public Agency[] getAllAgencies() {
  |             // TODO Auto-generated method stub
  |             Query query = getQuery("findAllAgencies");
  |             List<Agency> list =  query.getResultList();
  |             Agency[] agencies = new Agency[list.size()];
  |             return (Agency[])(list.toArray(agencies));
  |     }
  | 
  |     public JobApplication[] getAllJobApplications() {
  |             return new JobApplication[]{};
  |     }
  | 
  |     public Opportunity[] getAllOpportunities() {
  |             //Query query = getQuery("findAllOpportunities");
  |             //return query.getResultList();
  |             return new Opportunity[]{};
  |     }
  | 
  |     public void insertAgency(Agency agency) {
  |             // TODO Auto-generated method stub
  |             em.persist(agency);
  |     }
  | 
  |     public void insertJobApplication(JobApplication app) {
  |             em.persist(app);
  | 
  |     }
  | 
  |     public void insertOpportunity(Opportunity opp) {
  |             em.persist(opp);
  | 
  |     }
  | 
  |     
  |     
  |     private Query getQuery(String name) {
  |             return em.createNamedQuery(name);
  |     }
  |     
  | 
  |     @WebMethod(action="urn:synchronizeAgency")
  |     public @WebResult(name="returnAgency")Agency[] 
  |             synchronizeAgency(@WebParam(name="inAgency")Agency[] inAgency) {
  |             Agency[] agencies = new Agency[2];
  |             Agency ag = new AgencyEEjb();
  |             ag.setName("ag1");
  |             ag.setEmailAddress("[EMAIL PROTECTED]");
  |             ag.setJobHunter("fuckya");
  |             ag.setPhoneNumber("1234");
  |             ag.setSite("mysite");
  |             agencies[0] = ag;
  |             Agency ag2 = new AgencyEEjb();
  |             ag2.setName("ag2");
  |             ag2.setEmailAddress("[EMAIL PROTECTED]");
  |             ag2.setJobHunter("f222");
  |             ag2.setPhoneNumber("122222");
  |             ag2.setSite("mysite222");
  |             agencies[1] = ag2;
  |             return agencies;
  |     }
  |     
  |     @WebMethod(action="urn:synchronizeJobApplication")
  |     public @WebResult(name="returnJA")JobApplication[] 
  |             synchronizeJobApplication( 
@WebParam(name="inJA")JobApplication[] inJA) {
  |             JobApplication[] jas = new JobApplication[2];
  |             JobApplication ja1 = new JobApplicationEEjb();
  |             ja1.setAgencyName("Pathway");
  |             ja1.setCompany("Sumitomo Bank");
  |             ja1.setDuration(6);
  |             ja1.setJobApplicationTitle("Tester");
  |             ja1.setLocation("Reading");
  |             ja1.setSalary("300/day");
  |             jas[0] = ja1;
  |             JobApplication ja2 = new JobApplicationEEjb();
  |             ja2.setAgencyName("Mann");
  |             ja2.setCompany("Lehman Brothers");
  |             ja2.setDuration(6);
  |             ja2.setJobApplicationTitle("Sw Engineer");
  |             ja2.setLocation("London");
  |             ja2.setSalary("400/day");
  |             jas[1] = ja2;
  |             return jas;
  |     }
  | 
  | 
  |     @WebMethod(action="urn:synchronizeOpportunity")
  |     public @WebResult(name="returnOpportunity")Opportunity[] 
  |             synchronizeOpportunity(@WebParam(name="inOpp")Opportunity[] 
inOpp) {
  |             Opportunity[] opps = new Opportunity[2];
  |             Opportunity opps1 = new OpportunityEEjb();
  |             opps1.setAgencyName("IT People");
  |             opps1.setJobHunterName("Syed Ahmed");
  |             opps1.setOpportunityDetails("SW Engineer in London");
  |             opps1.setOpportunityDate(new Date().getTime());
  |             opps1.setOpportunityEmail("[EMAIL PROTECTED]");
  |             opps[0] = opps1;
  |             Opportunity opps2 = new OpportunityEEjb();
  |             opps2.setAgencyName("Computer People");
  |             opps2.setJobHunterName("Menachim Begin");
  |             opps2.setOpportunityDetails("SW Engineer in France");
  |             opps2.setOpportunityDate(new Date().getTime());
  |             opps2.setOpportunityEmail("[EMAIL PROTECTED]");
  |             opps[1] = opps2;
  | 
  |             return opps;
  |     }
  | 
  |     @WebMethod(action="urn:login")
  |     public void login(@WebParam(name="username")String user,
  |                                                                             
                        @WebParam(name="password")String password) {
  |             System.err.println("----- loggging in.....");
  |             
  |     }
  | 
  |     // Original sample
  |     @WebMethod(action="urn:testWebServiceMethod")
  |     public @WebResult(name="returnAgency")Agency[] 
  |         testWebServiceMethod( @WebParam(name="inAgency") Agency[] inAgency) 
{
  |             
  |             Agency[] agencies = new Agency[2];
  |             Agency ag = new AgencyEEjb();
  |             ag.setName("ag1");
  |             ag.setEmailAddress("[EMAIL PROTECTED]");
  |             ag.setJobHunter("fuckya");
  |             ag.setPhoneNumber("1234");
  |             ag.setSite("mysite");
  |             agencies[0] = ag;
  |             Agency ag2 = new AgencyEEjb();
  |             ag2.setName("ag2");
  |             ag2.setEmailAddress("[EMAIL PROTECTED]");
  |             ag2.setJobHunter("f222");
  |             ag2.setPhoneNumber("122222");
  |             ag2.setSite("mysite222");
  |             agencies[1] = ag2;
  |             return agencies;
  |     }
  | 
  |     public void storeAgency(Agency agency) {
  |             // TODO Auto-generated method stub
  |             
  |     }
  | 
  |     public void storeJobApplication(JobApplication ja) {
  |             // TODO Auto-generated method stub
  |             
  |     }
  | 
  |     public void storeOpportunity(Opportunity opp) {
  |             // TODO Auto-generated method stub
  |             
  |     }       
  | }
  | 

i am testing the login method (which returns void)

this is the response that my j2me client gets


  | <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
  | <env:Header/>
  | <env:Body><ns1:loginResponse xmlns:ns1='http://org.jboss.ws/ejb3ws' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'/>
  | </env:Body>
  | </env:Envelope>
  | 


still, i am getting this exception from midp

AXRPcC EXception.
  | javax.xml.rpc.JAXRPCException: java.rmi.MarshalException: (1)Missing end 
tag for Body or Envelope
  |     at com.sun.j2mews.xml.rpc.SOAPDecoder.decode(+243)
  |     at com.sun.j2mews.xml.rpc.OperationImpl.invoke(+90)
  |     at com.mm.j2me.ws.WSRemoteSEI_Stub.login(+48)
  |     at com.mm.j2me.midp.model.HTTPCommunicationHandler.createAccount(+36)
  |     at com.mm.j2me.midp.model.RemoteModelRequestHandler.createAccount(+16)
  |     at com.mm.j2me.midp.model.RemoteModelProxy.createAccount(+16)
  |     at com.mm.j2me.midp.model.ModelFacade.createAccount(+16)
  |     at com.mm.j2me.midp.ui.UIController$EventDispatcher.run(+277)
  | 

can anyone help pls? i have been stuck with this for 4 days....

thanks and regards
 marco

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3991773#3991773

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3991773
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to