4 Replies Latest reply on Feb 14, 2008 2:46 AM by beve

    Classloading issues in JBossESB

    ckirkendall

      I am having an issue getting my custom actions to be found in JBoss4.2 when deploying an custom ESB.

      The structure of the esb archive is as follows.

      -com
       |-sei
       |-jboss
       |-esb
       |-actions
       |-Service1.java
      -META-INF
       |-jboss-esb.xml
       |-deployment.xml
      
      -processDefinition
       |-processdefinition.xml
      
      -jbmq-queue-service.xml
      

      I can't for the life of me understand how the following error is even possible given the current structure. Any Help would be apriciated

      java.lang.ClassNotFoundException: com.sei.esb.jboss.actions.Service1

      Below is my jboss-esb.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
       parameterReloadSecs="5">
      
       <providers>
       <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
       jndi-URL="jnp://127.0.0.1:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
       jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
      
       <jms-bus busid="deployGwChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_bpm_deploy_Request_gw" />
       </jms-bus>
       <jms-bus busid="deployEsbChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_bpm_deploy_Request_esb" />
       </jms-bus>
       <jms-bus busid="startGwChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_start_gw" />
       <!-- quickstart_bpm_orchestration2_start_Request_gw -->
       <!-- DVDStore_Orders -->
       <!-- Petstore_Orders -->
       </jms-bus>
       <jms-bus busid="startEsbChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_start_esb" />
       </jms-bus>
       <jms-bus busid="service1EsbChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_service1_esb" />
       </jms-bus>
       <jms-bus busid="service2EsbChannel">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_service2_esb" />
       </jms-bus>
       <jms-bus busid="resultsService">
       <jms-message-filter dest-type="QUEUE"
       dest-name="queue/test_results_esb" />
       </jms-bus>
       </jms-provider>
       </providers>
      
       <services>
       <service category="SEI_BPM_Deploy_Service" name="Deploy_Service"
       description="SEI JBoss Test BPM Example: use this service to deploy the process">
       <listeners>
       <jms-listener name="JMS-Gateway" busidref="deployGwChannel"
       maxThreads="1"
       is-gateway="true" />
       <jms-listener name="ESB-Listener" busidref="deployEsbChannel"
       maxThreads="1"/>
       </listeners>
       <actions>
       <action name="DeployFromFile"
       class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
       <property name="command" value="DeployProcessDefinition" />
       <property name="process-definition-file" value="/processDefinition/processdefinition.xml" />
       </action>
       <action name="deployed-message" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="message" value="Process Definition Deployed" />
       </action>
       </actions>
       </service>
      
       <service category="SEI_BPM_Starter_Service" name="Starter_Service"
       description="SEI JBoss Test BPM Example: Use this service to start a process instance">
       <listeners>
       <jms-listener name="JMS-Gateway" busidref="startGwChannel"
       maxThreads="1"
       is-gateway="true" />
       <jms-listener name="ESB-Listener" busidref="startEsbChannel"
       maxThreads="1"/>
       </listeners>
       <actions>
      
       <action name="dump1" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
      
      
       <action name="start_a_new_process_instance"
       class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
       <property name="command" value="StartProcessInstanceCommand" />
       <property name="process-definition-name" value="TestProcess"/>
       <property name="object-paths">
       <object-path esb="BODY_CONTENT" bpm="theBody" />
       </property>
       </action>
      
       <action name="dump2" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
      
       </actions>
       </service>
      
       <service category="SEI_BPM_Service1" name="Service1"
       description="SEI JBoss Test BPM Example: this is a service invoked within the process">
       <listeners>
       <jms-listener name="ESB-Listener" busidref="service1EsbChannel" maxThreads="1"/>
       </listeners>
       <actions>
      
       <action name="dump3" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
       <!--<action name="serviceAction1" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="message" value="SERVICE1"/>
       </action> -->
       <action name="serviceAction1" class="com.sei.esb.jboss.actions.Service1"/>
       <action name="dump4" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
      
       </actions>
       </service>
      
      
       <service category="SEI_BPM_Service2" name="Service2"
       description="SEI JBoss Test BPM Example: this is a service invoked within the process">
       <listeners>
       <jms-listener name="ESB-Listener" busidref="service2EsbChannel" maxThreads="1"/>
       </listeners>
       <actions>
      
       <action name="dump5" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
       <!-- <action name="serviceAction2" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="message" value="SERVICE2"/>
       </action> -->
      
       <action name="serviceAction2" class="com.sei.esb.jboss.actions.Service2"/>
      
       <action name="dump6" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="printfull" value="true"/>
       </action>
      
       </actions>
       </service>
      
      
      
      
       <service category="SEI_BPM_ResultsService" name="ResultsService"
       description="SEI JBoss Test BPM Example: Sends outbound results of the process flow">
       <listeners>
       <jms-listener name="ESB-Listener" busidref="resultsService"
       maxThreads="1"/>
       </listeners>
       <actions>
      
       <action name="results-message" class="org.jboss.soa.esb.actions.SystemPrintln">
       <property name="message" value="SUCCESS!" />
       </action>
      
       </actions>
       </service>
       </services>
      
      </jbossesb>