0 Replies Latest reply on Dec 22, 2011 10:05 AM by lo Ey

    Problème Jboss Webservice esb jbr-provider

    lo Ey Newbie

      Bonjour,

       

      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.