Olá pessoal, estou tentando fazer uso de um exemplo que trabalhei em um curso da Caelum, na época com Glassfish, no JBoss 5.1 GA, porém tenho recibo erros e não consigo auxílio ou referências. Vejam abaixo os códigos:
A inteface
package interfaces;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style=Style.RPC)
public interface IAgenteDeReserva extends java.rmi.Remote {
@WebMethod
public boolean reserva(
@WebParam(name="nome")
String nome,
@WebParam(name = "voo")
String voo);
}
package webservices;
import interfaces.IAgenteDeReserva;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService(endpointInterface="interfaces.IAgenteDeReserva")
public class WSAgenteDeReserva implements IAgenteDeReserva {
public boolean reserva(String nome, String voo) {
if (voo.equals("3003")) {
System.out.println("Vôo 3003 reservado com sucesso para " + nome);
return true;
}
return false;
}
}
O cliente
package clients;
import interfaces.IAgenteDeReserva;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
public class ClienteWS {
public static void main(String[] args) throws Ma
Faço o deploy do JAR no JBoss, quando busco o wsdl recebo no navegador o seguinte:
<definitions name="WSAgenteDeReservaService" targetNamespace="http://webservices/">
<import location="http://127.0.0.1:8085/EJB06/WSAgenteDeReserva?wsdl&resource=IAgenteDeReserva_PortType6286197864953226372.wsdl" namespace="http://interfaces/"/>
−
<service name="WSAgenteDeReservaService">
−
<port binding="ns1:IAgenteDeReservaBinding" name="WSAgenteDeReservaPort">
<soap:address location="http://127.0.0.1:8085/EJB06/WSAgenteDeReserva"/>
</port>
</service>
</definitions>
O que me parece incompleto, mas se notarem a tag <import location> ela faz uso de outro wsdl, que tem as operações.
Ao executar o cliente, recebo a seguinte mensagem:
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at $Proxy0.reserva(Unknown Source)
at clients.ClienteWS.main(ClienteWS.java:23)
Caused by: java.rmi.RemoteException: Call invocation failed with code [Client] because of: Endpoint {http://webservices/}WSAgenteDeReservaPort does not contain operation meta data for: {http://webservices/}reserva; nested exception is:
javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://webservices/}WSAgenteDeReservaPort does not contain operation meta data for: {http://webservices/}reserva
at org.jboss.ws.core.jaxrpc.client.CallImpl.invokeInternal(CallImpl.java:523)
at org.jboss.ws.core.jaxrpc.client.CallImpl.invoke(CallImpl.java:275)
at org.jboss.ws.core.jaxrpc.client.PortProxy.invoke(PortProxy.java:154)
... 2 more
Caused by: javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://webservices/}WSAgenteDeReservaPort does not contain operation meta data for: {http://webservices/}reserva
at org.jboss.ws.core.jaxrpc.SOAPFaultHelperJAXRPC.getSOAPFaultException(SOAPFaultHelperJAXRPC.java:102)
at org.jboss.ws.core.jaxrpc.SOAP11BindingJAXRPC.throwFaultException(SOAP11BindingJAXRPC.java:66)
at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:579)
at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:381)
at org.jboss.ws.core.jaxrpc.client.CallImpl.invokeInternal(CallImpl.java:516)
... 4 more
Agradeço muito se me ajudarem