Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

jboss deployment

Status
Not open for further replies.

softjack

Programmer
Dec 4, 2005
44
0
0
IN
I was referring to the Jboss-IDE tutorial from .

everything was fine until i tried to deployed the created ear file to jboss 4.0.3.

I getting the error message

Code:
14:42:17,201 WARN  [verifier] EJB spec violation: 
Bean   : Fibo
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 'ejb.tutorial.FiboBean': No ClassLoaders found for: ejb.tutorial.FiboBean

14:42:17,201 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4.0.3SP1/server/default/tmp/deploy/tmp27125FiboApp.ear-contents/FiboEJB.jar
org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.

a similar problem is mentioned in thread197-819238, but here the problem appear to be different...spent a lot of time ..couldn't get it right.

This is my FiboBean class

Code:
package ejb.tutorial;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

/**
* @ejb.bean name ="Fibo"
* 			display-name="Fibo EJB"
*           description ="Ejb that computes Fibonacci suite"
*           view-type="remote"
*           jndi-name="ejb/tutorial/Fibo" 
*/

public class FiboBean implements SessionBean {

	/**
	 * 
	 */
	


	public FiboBean() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void setSessionContext(SessionContext arg0) throws EJBException,
			RemoteException {
		// TODO Auto-generated method stub

	}

	public void ejbRemove() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}

	public void ejbActivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}

	public void ejbPassivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}
	
	/**
	 * Default create method
	 * @throws CreateException
	 * @ejb.create-method
	 * 
	*/
	public void ejbCreate() throws javax.ejb.CreateException{} 
	
	
	/**
	 * @name compute
	 * @param number
	 * @return double[]
	 * 
	 * @ejb.interface-method view-type="remote"
	 */
	
	
	
	
	public double[] compute(int number){
		
		if (number<0){
			
			throw new EJBException("Argument should be positive");
	}
		double[] suite =new double[number+1];
		suite[0]=0;
		
		if(number==0){
			return suite;
		}
		
		suite[1]=1;
		
		
		for(int i=2;i<=number;i++){
			suite[i]=suite[i-1]+suite[i-2];
		}
		
		return suite;
	}
	
	
	

}

My ComputeServlet

Code:
package tutorial.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ejb.tutorial.Fibo;
import ejb.tutorial.FiboHome;


/**
 * 
 * 
 * @author fr3794
 * 
 * @web.servlet        name ="ComputeServlet"
 * 					   display-name ="Computation Servlet"	
 *                     description ="Servlet that generates fibonacci code"
 *                     
 * @web.servlet-mapping  url-pattern ="/Compute"
 * 
 * 
 * @web.env-entry       name="Title"
 *                      type="java.lang.String"
 *                      value ="Fibonacci Computation"
 *                      description="example"
 *                      
 *  @web.ejb-ref        name="ejb/Fibo"
 *  					type="Session"
 *                      home="tutorial.interfaces.FiboHome"
 *                      remote="tutorial.interfaces.Fibo"
 *                      description="reference to fibo ejb"
 * 
 * 
 * @jboss.ejb-ref-jndi  ref-name  ="ejb/Fibo"
 *                      jndi-name ="ejb/tutorial/Fibo"
 * 
 * 
 */



public class ComputeServlet extends HttpServlet {

	/**
	 * 
	 */

	private FiboHome home;
	private String value;
	
	public ComputeServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html><head><title>");
		out.println(value);
		out.println("</title></head>");
		out.println("<body>");
		out.println("<h1>");
		out.println(value);
		out.println("</h1>");
		
		try{
			Fibo bean= home.create();
			int limit=0;
			String value = request.getParameter("limit");
			
			if(value!=null)
			{
				try{
					limit=Integer.parseInt(value);
					
				}catch(Exception e){}
			}
			
			double[] result = bean.compute(limit);
			bean.remove();
			
			out.println("<P>");
			out.print("The ");
			out.print(limit);
			out.print(" first fibonacci no's");
			
			for(int i=0;i<=result.length;i++ ){
				
				out.println("<BR>"); 
				out.print(i); 
				out.print(" : ");
				out.println(result[i]); 
				
			}
			
			out.println("</P>");
			
			
		}catch(Exception e){
			out.println(e.getMessage());
			e.printStackTrace(out); 
		}
		finally{
			out.println("</body></html>");
			out.close();
		}
		
		
	}

	public void init() throws ServletException {
		// TODO Auto-generated method stub
		try{
			Context context= new InitialContext();
			value=(String) context.lookup("java:/comp/env/Title");
			Object ref =context.lookup("java:/comp/env/ejb/Fibo");
			
			home = (FiboHome) PortableRemoteObject.narrow(ref,FiboHome.class );
			
		}
		catch(Exception e){
			throw new ServletException("Look up of java:/comp/env/ failed");
		}
	}

}

my ejb-jar.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "[URL unfurl="true"]http://java.sun.com/dtd/ejb-jar_2_0.dtd">[/URL]

<ejb-jar >

   <description><![CDATA[No Description.]]></description>
   <display-name>Generated by XDoclet</display-name>

   <enterprise-beans>

      <!-- Session Beans -->
      <session>
         <description><![CDATA[Ejb that computes Fibonacci suite]]></description>
         <display-name>Fibo EJB</display-name>

         <ejb-name>Fibo</ejb-name>

         <home>ejb.tutorial.FiboHome</home>
         <remote>ejb.tutorial.Fibo</remote>
         <ejb-class>ejb.tutorial.FiboBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>

      </session>

     <!--
       To add session beans that you have deployment descriptor info for, add
       a file to your XDoclet merge directory called session-beans.xml that contains
       the <session></session> markup for those beans.
     -->

      <!-- Entity Beans -->
     <!--
       To add entity beans that you have deployment descriptor info for, add
       a file to your XDoclet merge directory called entity-beans.xml that contains
       the <entity></entity> markup for those beans.
     -->

      <!-- Message Driven Beans -->
     <!--
       To add message driven beans that you have deployment descriptor info for, add
       a file to your XDoclet merge directory called message-driven-beans.xml that contains
       the <message-driven></message-driven> markup for those beans.
     -->

   </enterprise-beans>

   <!-- Relationships -->

   <!-- Assembly Descriptor -->
     <!--
       To specify your own assembly descriptor info here, add a file to your
       XDoclet merge directory called assembly-descriptor.xml that contains
       the <assembly-descriptor></assembly-descriptor> markup.
     -->

   <assembly-descriptor >
     <!--
       To specify additional security-role elements, add a file in the merge
       directory called ejb-security-roles.xml that contains them.
     -->

   <!-- method permissions -->
     <!--
       To specify additional method-permission elements, add a file in the merge
       directory called ejb-method-permissions.ent that contains them.
     -->

   <!-- transactions -->
     <!--
       To specify additional container-transaction elements, add a file in the merge
       directory called ejb-container-transactions.ent that contains them.
     -->

   <!-- finder transactions -->

   <!-- message destinations -->
     <!--
       To specify additional message-destination elements, add a file in the merge
       directory called ejb-message-destinations.ent that contains them.
     -->

   <!-- exclude list -->
     <!--
       To specify an exclude-list element, add a file in the merge directory
       called ejb-exclude-list.xml that contains it.
     -->
   </assembly-descriptor>

</ejb-jar>

my application.xml

Code:
<!DOCTYPE application PUBLIC "-//Sun Microsystems, 
Inc.//DTD J2EE Application 1.2//EN" 
"[URL unfurl="true"]http://java.sun.com/j2ee/dtds/application_1_2.dtd">[/URL]


<application>
<display-name>Sun Application</display-name>
<module>
<ejb>FiboEJB.jar</ejb>
</module>

<module>
<web>
    <web-uri>FiboWeb.war</web-uri>
    <context-root>/fibo</context-root>
</web>
</module>


</application>

my jboss.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 2.4//EN" "[URL unfurl="true"]http://www.jboss.org/j2ee/dtd/jboss_2_4.dtd">[/URL]

<jboss>

   <enterprise-beans>

     <!--
       To add beans that you have deployment descriptor info for, add
       a file to your XDoclet merge directory called jboss-beans.xml that contains
       the <session></session>, <entity></entity> and <message-driven></message-driven>
       markup for those beans.
     -->

      <session>
         <ejb-name>Fibo</ejb-name>
         <jndi-name>ejb/tutorial/Fibo</jndi-name>

      </session>

    <!--
      write a merge file jboss-webservices.ent for webservice-description 
    -->

   </enterprise-beans>

   <resource-managers>
   </resource-managers>

  <!--
    | for container settings, you can merge in jboss-container.xml
    | this can contain <invoker-proxy-bindings/> and <container-configurations/>
  -->

</jboss>

my web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "[URL unfurl="true"]http://java.sun.com/dtd/web-app_2_3.dtd">[/URL]

<web-app >
   <distributable/>

    <!--
    To use non XDoclet filters, create a filters.xml file that
    contains the additional filters (eg Sitemesh) and place it in your
    project's merge dir.  Don't include filter-mappings in this file,
    include them in a file called filter-mappings.xml and put that in
    the same directory.
    -->

    <!--
    To use non XDoclet filter-mappings, create a filter-mappings.xml file that
    contains the additional filter-mappings and place it in your
    project's merge dir.
    -->

    <!--
    To use non XDoclet listeners, create a listeners.xml file that
    contains the additional listeners and place it in your
    project's merge dir.
    -->

   <servlet>
      <servlet-name>ComputeServlet</servlet-name>
      <display-name>Computation Servlet</display-name>
      <description><![CDATA[Servlet that generates fibonacci code]]></description>
      <servlet-class>tutorial.web.ComputeServlet</servlet-class>

   </servlet>

  <!--
  To use non XDoclet servlets, create a servlets.xml file that
  contains the additional servlets (eg Struts) and place it in your
  project's merge dir.  Don't include servlet-mappings in this file,
  include them in a file called servlet-mappings.xml and put that in
  the same directory.
  -->

   <servlet-mapping>
      <servlet-name>ComputeServlet</servlet-name>
      <url-pattern>/Compute</url-pattern>
   </servlet-mapping>

   <!--
   To specify mime mappings, create a file named mime-mappings.xml, put it in your project's mergedir.
   Organize mime-mappings.xml following this DTD slice:

   <!ELEMENT mime-mapping (extension, mime-type)>
   -->

   <!--
   To specify error pages, create a file named error-pages.xml, put it in your project's mergedir.
   Organize error-pages.xml following this DTD slice:

   <!ELEMENT error-page ((error-code | exception-type), location)>
   -->

  <!--
  To add taglibs by xml, create a file called taglibs.xml and place it
  in your merge dir.
  -->

   <!--
   To set up security settings for your web app, create a file named web-security.xml, put it in your project's mergedir.
   Organize web-security.xml following this DTD slice:

   <!ELEMENT security-constraint (display-name?, web-resource-collection+, auth-constraint?, user-data-constraint?)>
   <!ELEMENT web-resource-collection (web-resource-name, description?, url-pattern*, http-method*)>
   <!ELEMENT web-resource-name (#PCDATA)>
   <!ELEMENT url-pattern (#PCDATA)>
   <!ELEMENT http-method (#PCDATA)>
   <!ELEMENT user-data-constraint (description?, transport-guarantee)>
   <!ELEMENT transport-guarantee (#PCDATA)>

   <!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
   <!ELEMENT auth-method (#PCDATA)>
   <!ELEMENT realm-name (#PCDATA)>
   <!ELEMENT form-login-config (form-login-page, form-error-page)>
   <!ELEMENT form-login-page (#PCDATA)>
   <!ELEMENT form-error-page (#PCDATA)>
   -->

   <env-entry>
      <description><![CDATA[example]]></description>
      <env-entry-name>Title</env-entry-name>
      <env-entry-value>Fibonacci Computation</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
   </env-entry>

   <ejb-ref >
      <description><![CDATA[reference to fibo ejb]]></description>
      <ejb-ref-name>ejb/Fibo</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <home>tutorial.interfaces.FiboHome</home>
      <remote>tutorial.interfaces.Fibo</remote>
   </ejb-ref>

</web-app>

i followed the tutorial step by step...but still have a problem

Please help!

softjack
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top