help in generating WSDL
mmarcom Oct 5, 2006 2:52 PMhi all,
can anyone help me out in how to generate WSDL for my EJB?
i have this very simple EJB3 that i want to expose a s a webService
here's the interface
/**
* Copyright @ 2006
* By Marco Mistroni
*/
package com.mm.j2me.ejb;
import java.rmi.RemoteException;
import javax.ejb.*;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import org.jboss.ws.annotation.PortComponent;
import com.mm.j2me.core.Agency;
import com.mm.j2me.core.WSFacade;
@WebService (name="WSFacade",
targetNamespace="http://org.jboss.ws/samples/jsr181ejb",
serviceName="WSFacade",
endpointInterface="com.mm.j2me.ejb.WSRemoteSEI")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
@PortComponent(transportGuarantee="NONE",
contextRoot = "/",
urlPattern="/v1/soap/WSFacade")
public interface WSRemoteSEI extends Remote {
public String[] testWebServiceMethod() throws RemoteException;
}
here' smy simple EJB3
@WebService (name="WSFacade",
serviceName="WSFacade",
endpointInterface="com.mm.j2me.ejb.WSRemoteSEI")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
@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);
}
public User login(String username) {
// TODO Auto-generated method stub
return null;
}
private Query getQuery(String name) {
return em.createNamedQuery(name);
}
@WebMethod
public String testWebServiceMethod() {
String[] agencies = {"agency1;job1;", "agency2;job2"};
}
}
i m runnign wstools with this cnfig file
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://www.jboss.org/jbossws-tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd"> <wsdl-java file="http://localhost:9080//v1/soap/WSFacade?wsdl"> <mapping file="jaxrpc-mapping-client.xml" /> </wsdl-java> </configuration>
and all i got is plenty, plenty of generated classes:
Annotation, AnnotationType, AnnotationTypeResponse, Certificat, CertPath, Class, Classloader, CodeSigner
thing is that some classes does not even compile...
why does it generate all extra classes ? i need only 2 of them WSFacade_PortType adn WSFacade_Service
why do i have all those extra classes?
anyone could recommend me the easiest wayt ogenerate wsdl from java for jbossws?
thanks in advance and regards
marco