Problème Jboss Webservice esb jbr-provider
loo Dec 22, 2011 10:05 AMBonjour,
je débute sur jboss et je souhaiterais créer un esb de type webservice.
J'ai créé un projet de type esb ainsi qu'un provider de type JBR-provider pour mon fichier jboss-esb.xml que voici :
<?xml version="1.0"?>
<jbossesb parameterReloadSecs="5"
xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
xmlns:xsi="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
xsi:schemaLocation="http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd">
<providers>
<jbr-provider name="WSModeleProd" protocol="http" host="x.x.x.x">
<jbr-bus busid="Http-WSModeleProd-1" port="8081" />
</jbr-provider>
</providers>
<services>
<service category="ServiceCategoryWSModeleProd" name="ServiceWSModeleProd"
description="WS Frontend speaks natively to the ESB" invmScope="GLOBAL">
<listeners>
<jbr-listener name="WSModeleProd" busidref="Http-WSModeleProd-1"
is-gateway="true" />
</listeners>
<actions mep="RequestResponse">
<action name="ActionWSModeleProd" class="chu.esb.actions.SPrGatewayWSModeleProdAction"
process="WSModeleAction">
</action>
</actions>
</service>
</services>
</jbossesb>
J'ai créé la classe chu.esb.actions.SPrGatewayWSModeleProdAction que voici :
package chu.esb.actions;
....
@WebService(name = "SPrGatewayWSModeleProdAction", targetNamespace = "http://10.10.1.83:8081/SPrGatewayWSModeleProdAction")
public class SPrGatewayWSModeleProdAction extends AbstractActionPipelineProcessor implements ISPrGatewayWSModeleProdAction {
protected ConfigTree _config;
public SPrGatewayWSModeleProdAction(ConfigTree config) {
_config = config;
}
@WebMethod
public Message WSModeleAction(@WebParam(name = "message") Message message) {
System.out.println("WSModeleAction - message=" + message.getBody());
return message;
}
public Message process(Message arg0) throws ActionProcessingException {
// TODO Auto-generated method stub
return null;
}
}
Lors du deploiement tout se passe bien, mais lorsque je tape l'url de type : x.x.x.x:8081/SPrGatewayWSModeleProdAction, j'obtiens l'erreur suivante :
org.jboss.soa.esb.couriers.FaultMessageException: java.lang.IllegalArgumentException: null 'value' arg in method call.
at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:50)
at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:207)
at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:675)
at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:569)
at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:359)
at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:219)
at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapter.java:107)
at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86)
at org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:375)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:930)
at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:392)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.IllegalArgumentException: null 'value' arg in method call.
at org.jboss.internal.soa.esb.assertion.AssertArgument.isNotNull(AssertArgument.java:43)
at org.jboss.internal.soa.esb.message.format.xml.BodyImpl.add(BodyImpl.java:83)
at chu.esb.esb_communs.ESB_Communs.setParameters(ESB_Communs.java:2586)
at chu.esb.actions.SPrGatewayWSModeleProdAction.WSModeleAction(SPrGatewayWSModeleProdAction.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:102)
at org.jboss.soa.esb.listeners.message.OverriddenActionPipelineProcessor.process(OverriddenActionPipelineProcessor.java:73)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:649)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:603)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:433)
at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:550)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
... 1 more
Qu'est ce cela veut dire ?
Lorsque j'appelle mon webservice depuis une application cliente, j'obtiens une erreur (de type org.jboss.remoting.transport.http.WebServerError:) mais le fichier de log affiche tout de meme le bon message.
A t-on besoin de créer un fichier wsdl contenu dans mon projet esb webservice ? un autre fichier ? quels sont les erreurs de configuration de cet esb ?
Merci pour vos lumières.