1 Reply Latest reply on Apr 17, 2006 1:03 PM by miltgrin

    error in deploying ejb

    miltgrin

      I'm having a problem deploying an EJB in Jboss. This application/ejb works in Weblogic and I have modified it for JBoss
      When I start up Jboss with the application deployed. I get the following error.

      08:55:33,706 INFO [EARDeployer] Init J2EE application: file:/C:/jboss-4.0.3SP1/server/default/deploy/helloworld.ear
      08:55:34,816 WARN [verifier] EJB spec violation:
      Bean : Greeting
      Section: 22.2
      Warning: The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods in the <ejb-class> element.
      Info : Class not found on 'com.helloworld.GreetingCMP': Unexpected error during load of: com.helloworld.GreetingCMP, msg=com/helloworld/GreetingCMPDataAdapterTemplate

      08:55:35,019 WARN [verifier] EJB spec violation:
      Bean : Language
      Section: 22.2
      Warning: The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods in the <ejb-class> element.
      Info : Class not found on 'com.helloworld.LanguageCMP': Unexpected error during load of: com.helloworld.LanguageCMP, msg=com/helloworld/LanguageCMPDataAdapterTemplate

      08:55:35,019 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4.0.3SP1/server/default/tmp/deploy/tmp59492helloworld.ear-contents/helloworld_ejb.jar
      org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.



      I checked the ejb-jar.xml file and it has the following info in it

      <!-- Entity Beans -->

      <![CDATA[This is a GreetingCMPDataAdapterTemplate bean.]]>
      <ejb-name>Greeting</ejb-name>
      <local-home>com.helloworld.GreetingCMPDataAdapterHome</local-home>
      com.helloworld.GreetingCMPDataAdapter
      <ejb-class>com.helloworld.GreetingCMP</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>java.lang.Long</prim-key-class>
      False
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>GreetingSchema</abstract-schema-name>
      <cmp-field >
      <![CDATA[Gets the Content]]>
      <field-name>content</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Primary key.]]>
      <field-name>qid</field-name>
      </cmp-field>
      <primkey-field>qid</primkey-field>

      (I REMOVED THE QUERY INFO)




      <![CDATA[This is a LanguageCMPDataAdapterTemplate bean.]]>
      <ejb-name>Language</ejb-name>
      <local-home>com.helloworld.LanguageCMPDataAdapterHome</local-home>
      com.helloworld.LanguageCMPDataAdapter

      <ejb-class>com.helloworld.LanguageCMP</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>java.lang.Long</prim-key-class>
      False
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>LanguageSchema</abstract-schema-name>
      <cmp-field >
      <![CDATA[Gets the Name]]>
      <field-name>name</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Primary key.]]>
      <field-name>qid</field-name>
      </cmp-field>
      <primkey-field>qid</primkey-field>

      (I REMOVED THE QUERY INFO)



      Jboss.xml has in it the following

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">

      <enterprise-beans>

      <ejb-name>Greeting</ejb-name>
      <local-jndi-name>ejb/Greeting</local-jndi-name>
      <method-attributes>
      </method-attributes>


      <ejb-name>Language</ejb-name>
      <local-jndi-name>ejb/Language</local-jndi-name>
      <method-attributes>
      </method-attributes>

      </enterprise-beans>
      <assembly-descriptor>
      </assembly-descriptor>
      <resource-managers>
      </resource-managers>



      The helloworld_ejb.jar file has the following in it:
      Greeting.class Class file com\helloworld
      GreetingCMPDataAdapterHome Class file com\helloworld
      GreetingCMPDataAdapter Class file com\helloworld
      GreetingCMP Class file com\helloworld
      LanguageCMPDataAdapterHome Class file com\helloworld
      LanguageCMPDataAdapter Class file com\helloworld
      LanguageCMP Class file com\helloworld
      Language Class file com\helloworld
      plus lots of other files

      The helloworld.ear file
      helloworld.war
      helloworld_ejb.jar
      application.xml
      Manifest.mf


      Everything seems to be correct yet I get the error.
      I am stumped as to how to debug this. Anyone with any ideas.

        • 1. Re: error in deploying ejb
          miltgrin

          This was my mistake. There were some classes that the build did not package in the jar file. For anyone in the future that might run into this problem the key is in the msg: part of the error

          08:55:34,816 WARN [verifier] EJB spec violation:
          Bean : Greeting
          Section: 22.2
          Warning: The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods in the <ejb-class> element.
          Info : Class not found on 'com.helloworld.GreetingCMP': Unexpected error during load of: com.helloworld.GreetingCMP,


          msg=com/helloworld/GreetingCMPDataAdapterTemplate

          This was the class that wasn't included in the jar file.