Hola, estoy tranado de crear un web service para weblogic 8.1. Como ide uso el eclipse, y para la generacion de los xmls uso xdoclet.
Tengo el siguiente EJB:
h50webServicesSesionEJB
con este bean:
Código PHP:
package h50webServicesSesionEJB;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* <p>Título: H50WebServicesSesionBean</p>
* <p>Descripción: EJB que para publicar los web services de la aplicacion</p>
* @version 1.0
*
* @ejb.bean name="H50WebServicesSesion"
* jndi-name="h50.h50H50WebServicesSesionEJB"
* type="Stateless"
* view-type="all"
* transaction-type="Container"
* @ejb.interface extends="javax.ejb.EJBObject"
* service-endpoint-class="h50webServicesSesionEJB.H50WebServicesEndPoint"
*
* @weblogic.ejb trans-timeout-seconds="60"
* enable-call-by-reference="True"
*
* @wsee.port-component
* name="h50webServicesSesionEJB.H50WebServicesEndPoint"
* wsdl-port="h50:H50WebServicesPort"
* service-endpoint-interace="h50webServicesSesionEJB.H50WebServicesEndPoint"
* service-endpoint-bean="h50webServicesSesionEJB.H50WebServicesSesionBean"
*/
public class H50WebServicesSesionBean implements SessionBean {
SessionContext sessionContext;
/**
* Lanza una consulta sencilla con statement que sólo devuelve un string.
* @param strPfFoCoop String: Numero de folio de la cooperativa
* @param strPfCtipex String: Tipo de solicitud
* @param strPfFoCoop strPfIdioma: Idioma
* @return ArrayList: Arraylist con los datos de la solicitud autorizacion de trabajadores
* @throws Exception
*
* @ejb.interface-method view-type="service-endpoint"
*/
public String fncRemota (String strPf) throws Exception {
try{
System.out.println("WEB SERVICES");
System.out.println("Parametro entrada:" + strPf);
return "FIN WEB SERVICES";
}
catch(Exception e){
throw new RemoteException("", e);
}
}
/**
* @ejb.create-method
*/
public void ejbCreate() throws CreateException {
}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
}
y en el build.xml tengo esta tarea ant que me genera las clases End-point, el home, remote,local y local home y los descriptores ejb-jar,weblogic-ejb-jar,jaxrpc-mapping,webservices, y el wsdl
Código PHP:
<target name="generar_WebServicesEJB">
<echo message="Generando interfaces y descriptores ..."/>
<ejbdoclet destdir="../h50/h50webServicesSesionEJB/src" force="true" verbose="true">
<fileset dir="../h50/h50webServicesSesionEJB/src" includes="**/*.java"/>
<remoteinterface/>
<homeinterface/>
<localhomeinterface/>
<localinterface/>
<service-endpoint/>
<deploymentdescriptor destdir="../h50/h50webServicesSesionEJB/src/META-INF"/>
<xmlTemplate havingClassTag="weblogic.ejb" templateFile="weblogic-ejb-jar.xdt"
destinationFile="META-INF/weblogic-ejb-jar.xml"/>
</ejbdoclet>
<wseedoclet
wsdlFile="wsdl/h50WebServices.wsdl"
jaxrpcMappingFile="jaxrpc-mapping.xml"
wseeSpec="1.1"
destdir="../h50/h50webServicesSesionEJB/src/META-INF"
mergeDir="merge"
excludedtags="@version,@author,@todo"
addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"
force="true"
verbose="true">
<packageNamespaceMapping packages="h50webServicesSesionEJB" namespace="http://localhost:7001/h50WebServices"/>
<fileset dir="../h50/h50webServicesSesionEJB/src/" defaultexcludes="yes">
<include name="h50webServicesSesionEJB/H50WebServicesSesionBean.java" />
</fileset>
<deploymentdescriptor name="h50WebService" />
<jaxrpc-mapping/>
<wsdl/>
</wseedoclet>
</target>
Este EJB esta dentro de una aplicacion con sus diferentes modulos.
Al deployar la aplicacion en el weblogic me da como correcto, pero no se como probar el servicio. Intento acceder a
Código:
http://localhost:7001/h50WebServices
como he puesto en la tarea ant, pero da como q no existe.Ademas no se q ruta deberia de poner para q me debuelva el wsdl
Dejo aki los XMLs que me genera el xdoclet: