[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: [reverbel-sod] problema com o método getRentalServiceDocPort
- Subject: Re: [reverbel-sod] problema com o método getRentalServiceDocPort
- From: "Ivan Neto" <ivanneto@xxxxxxxxx>
- Date: Tue, 13 Jun 2006 14:11:05 -0300
Olá Alexandre.
Ao que parece os metadados do JBoss não refletem perfeitamente a
interface RentalServiceRPC. Sugiro que você faça o seguinte: adicione
um arquivo como esse no classpath do seu cliente (o nome do arquivo
deve ser log4j.properties):
log4j.rootLogger=CONSOLE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{dd-MM
HH:mm:ss,SSS} (%F:%M:%L) -%m%n
No caso RPC vai aparecer, entre muitas outras coisas:
(ServiceProxy.java:invoke:112) -Invoke on jaxrpc service: getPort
...
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract
videorentalstore.webservice.MovieInfoArray
videorentalstore.webservice.RentalServiceRPC.findMovieByDirector(java.lang.String)
throws java.rmi.RemoteException
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract void
videorentalstore.webservice.RentalServiceRPC.startRental(int,int,videorentalstore.webservice.Date)
throws videorentalstore.webservice.InvalidMovieCopyIdExceptionType,videorentalstore.webservice.AlreadyRentedExceptionType,videorentalstore.webservice.InvalidCustomerIdExceptionType,java.rmi.RemoteException
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract
videorentalstore.webservice.MovieInfo
videorentalstore.webservice.RentalServiceRPC.findMovieById(int) throws
videorentalstore.webservice.NotFoundExceptionType,java.rmi.RemoteException
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract
videorentalstore.webservice.MovieInfoArray
videorentalstore.webservice.RentalServiceRPC.findMovieByGenreAndYear(java.lang.String,short)
throws java.rmi.RemoteException
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract
videorentalstore.webservice.MovieInfoArray
videorentalstore.webservice.RentalServiceRPC.findMovieByName(java.lang.String)
throws java.rmi.RemoteException
No caso document, deve aparecer algo parecido, mas deve ocorrer um
erro na sincronização de algum dos métodos:
(ServiceProxy.java:invoke:112) -Invoke on jaxrpc service: getPort
...
(MetaDataSynchronization.java:synchronizeServiceEndpointInterface:55)
-synchronize method: public abstract
videorentalstore.webservice.FindMovieByDirectorResponse
videorentalstore.webservice.RentalServiceDoc.findMovieByDirector(videorentalstore.webservice.FindMovieByDirectorRequest)
throws java.rmi.RemoteException
Com isso dá para saber qual método está causando o erro.
O que eu sugiro é que você gere novamente o jaxrpc-mapping.xml,
conforme descrito no enunciado do EP (com todos os parâmetros lá
apresentados). Depois disso, verifique novamente seus descritores de
implantação, e certifique-se de que os casos document e RPC estão
"parecidos" um com o outro. Se está funcionando no caso RPC, pode ser
algum detalhe na configuração document que está causando o erro.
[]'s
On 6/13/06, Alexandre Freire <chegado@xxxxxxxxx> wrote:
O código abaixo:
public static void main(String[] args) throws Exception {
Context initialContex = new InitialContext();
VideoRentalService service = (VideoRentalService) initialContex
.lookup("java:comp/env/service/videorental");
RentalServiceRPC port = (RentalServiceRPC) service.getRentalServiceRPCPort();
}
Funciona perfeitamente, porém quando substituo a linha
RentalServiceRPC port = (RentalServiceRPC) service.getRentalServiceRPCPort();
por
RentalServiceDoc port = (RentalServiceDoc) service.getRentalServiceDocPort();
ocorre a seguinte exception:
Exception in thread "main" javax.xml.rpc.ServiceException: Cannot create proxy
at org.jboss.ws.jaxrpc.ServiceImpl.createProxy(ServiceImpl.java:380)
at org.jboss.ws.jaxrpc.ServiceImpl.getPort(ServiceImpl.java:329)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.ws.jaxrpc.ServiceProxy.invoke(ServiceProxy.java:130)
at $Proxy1.getRentalServiceDocPort(Unknown Source)
at temp.WSClient.main(WSClient.java:21)
Caused by: org.jboss.ws.WSException: Unexpected null return parameter
at org.jboss.ws.jaxrpc.ParameterWrapping.assertOperationMetaData(ParameterWrapping.java:71)
at org.jboss.ws.jaxrpc.ParameterWrapping.matchRequestParameters(ParameterWrapping.java:79)
at org.jboss.ws.metadata.OperationMetaData.getJavaMethod(OperationMetaData.java:182)
at org.jboss.ws.metadata.EndpointMetaData.getOperation(EndpointMetaData.java:324)
at org.jboss.ws.jaxrpc.MetaDataSynchronization.synchronizeServiceEndpointInterface(MetaDataSynchronization.java:57)
at org.jboss.ws.jaxrpc.ServiceImpl.createProxy(ServiceImpl.java:365)
... 8 more
Já verifiquei todos os XMLs e aparentemente estão corretos.
Obrigado.