hi all,

i've tried to run the tutorial on accessing EJB inWeb application but got
the error while deploying the Web part

the tutorial is located:
https://cwiki.apache.org/GMOxDOC30/accessing-ejb-in-web-applications.html
(Home > Apache Geronimo v3.0 > Documentation > Developing > Tutorials >
Developing Web applications > Accessing EJB in Web applications)

server seems to work fine - SDK, Eclipse, GEP, Geronimo

server: Debian
version: 2.22.3

$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)

geronimo-jetty8-javaee6-3.0-M1

eclipse-jee-helios-SR2-linux-gtk

Eclipse Java EE IDE for Web Developers.
Version: Helios Service Release 2
Build id: 20110218-0911

Apache Geronimo v3.0 Server Adapter
Version: 3.0.0-20100706214934


all files in 2 projects of the tutorial are presented below (tried to follow
the tutorial 'a la lettre')

--> Converter.java

package ejb;

import java.math.BigDecimal;
import javax.ejb.Remote;

@Remote
public interface Converter {

        public BigDecimal dollarToRupees(BigDecimal dollars);

        public BigDecimal rupeesToEuro(BigDecimal rupees);
}


--> ConverterBean.java

package ejb;

import java.math.BigDecimal;
import javax.ejb.*;

@Stateless
public class ConverterBean implements Converter {

        private BigDecimal rupeeRate = new BigDecimal("40.58");
        private BigDecimal euroRate = new BigDecimal("0.018368");

        public BigDecimal dollarToRupees(BigDecimal dollars) {
                BigDecimal result = dollars.multiply(rupeeRate);
                return result.setScale(2, BigDecimal.ROUND_UP);
        }

        public BigDecimal rupeesToEuro(BigDecimal rupees) {
                BigDecimal result = rupees.multiply(euroRate);
                return result.setScale(2, BigDecimal.ROUND_UP);
        }
}


--> ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns="http://java.sun.com/xml/ns/javaee";
        xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd";
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd";
        version="3.1">
  <display-name>CurrencyConvertEJB</display-name>
</ejb-jar>


--> openejb-jar.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ejb:openejb-jar
        xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0";

xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0";
        xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2";
        xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2";
        xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2";
        xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0";
        xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2";
        xmlns:pers="http://java.sun.com/xml/ns/persistence";
        xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1";
        xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0";
        xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1";>
    <dep:environment>
        <dep:moduleId>
            <dep:groupId>default</dep:groupId>
            <dep:artifactId>CurrencyConverterEJB</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>car</dep:type>
        </dep:moduleId>
    </dep:environment>
</ejb:openejb-jar>


--> index.jsp

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
<html xmlns="http://www.w3.org/1999/xhtml";>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Converter</title>
</head>
<body bgcolor="white">
Converter

<hr />
<p>Enter an amount to convert:</p>
<form method="get" action="index.jsp">
        <input type="text" name="amount" size="25" /><br />
        <p>
        <input type="submit" value="Submit" />

        <input type="reset" value="Reset" />
        </p>
</form>

<jsp:include page="/ConverterHandler" />

</body>

</html>


--> ConverterHandler.java

package webejb;

import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ejb.Converter;

/**
 * Servlet implementation class ConverterHandler
 */
@WebServlet("/ConverterHandler")
public class ConverterHandler extends HttpServlet {
        private static final long serialVersionUID = 1L;
        
        @EJB(name = "ejb/Converter")
        private Converter converter;
   
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ConverterHandler() {
        
        super();
    }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request, 
HttpServletResponse
response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {

                PrintWriter out = response.getWriter();
                String amount = request.getParameter("amount");
                if (amount != null && amount.length() > 0) {
                        BigDecimal d = new BigDecimal(amount);
                        BigDecimal rupeeAmount = converter.dollarToRupees(d);
                        out.println("<p>" + amount + " Dollars are " + 
rupeeAmount + "
Rupees.<p>");
                        BigDecimal euroAmount = 
converter.rupeesToEuro(rupeeAmount);
                        out.println(amount + " Dollars are " + euroAmount + " 
Euro.");
                }
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, 
HttpServletResponse
response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
                
                doGet(request, response);
        }

}


--> web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns="http://java.sun.com/xml/ns/javaee";
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"; version="3.0">
  <display-name>WebEJB</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


--> geronimo-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"; 
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"; 
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"; 
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2";>

    <sys:environment>
        <sys:moduleId>
            <sys:groupId>default</sys:groupId>
            <sys:artifactId>WebEJB</sys:artifactId>
            <sys:version>1.0</sys:version>
            <sys:type>car</sys:type>
        </sys:moduleId>
        <sys:dependencies>
            <sys:dependency>
                <sys:groupId>default</sys:groupId>
                    <sys:artifactId>CurrencyConvertEJB</sys:artifactId>
                    <sys:version>1.0</sys:version>
                    <sys:type>car</sys:type>
            </sys:dependency>        
        </sys:dependencies>
    </sys:environment>

    <context-root>/WebEJB</context-root>

    <nam:ejb-ref xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2";>
        <nam:ref-name>ejb/Converter</nam:ref-name>
        <nam:pattern>
            <nam:groupId>default</nam:groupId>
            <nam:artifactId>CurrencyConvertEJB</nam:artifactId>
            <nam:version>1.0</nam:version>
            <nam:name>ConverterBean</nam:name>
        </nam:pattern>
    </nam:ejb-ref>

</web-app>


--> Error Message Box

'Publishing to Apache Geronimo v3.0 Server at localhost...' has encouterred
a problem.

NLS missing message: DISTRIBUTE_FAIL in:
org.apache.geronimo.st.v30.core.internal.Messages
Classloader for nullcan't find Could not fully load class:
webejb.ConverterHandler
 due to:Lejb/Converter;
 in classLoader: 
412.0
org.apache.geronimo.common.DeploymentException: Classloader for nullcan't
find Could not fully load class: webejb.ConverterHandler
 due to:Lejb/Converter;
 in classLoader: 
412.0
        at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:678)
        at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:623)
        at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:700)
        at
org.apache.geronimo.jetty8.deployment.JettyModuleBuilder.addGBeans(JettyModuleBuilder.java:482)
        at
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.addGBeans(SwitchingModuleBuilder.java:175)
        at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:690)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:250)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:138)
        at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:856)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
        at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:344)
        at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:856)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
        at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
        at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
Source)
        at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown 
Source)
        at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown
Source)
        at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: Could not fully load class:
webejb.ConverterHandler
 due to:Lejb/Converter;
 in classLoader: 
412.0
        at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:161)
        at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:676)
        ... 44 more


--> Console

2011-04-21 01:54:36,567 ERROR [DependencyManager] Could not install bundle
dependecy
org.osgi.framework.BundleException: Unable to cache bundle:
mvn:default/CurrencyConvertEJB/1.0/car
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2378)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2334)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:130)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:108)
        at
org.apache.geronimo.system.configuration.DependencyManager.starting(DependencyManager.java:182)
        at
org.apache.geronimo.system.configuration.DependencyManager.bundleChanged(DependencyManager.java:89)
        at
org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800)
        at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728)
        at
org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3612)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:1750)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1682)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905)
        at
org.apache.geronimo.deployment.DeploymentContext.createTempConfiguration(DeploymentContext.java:202)
        at
org.apache.geronimo.deployment.DeploymentContext.initializeConfiguration(DeploymentContext.java:188)
        at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:606)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:250)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:138)
        at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:856)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
        at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:344)
        at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:856)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
        at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
        at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
Source)
        at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown 
Source)
        at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown
Source)
        at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: URL
[mvn:default/CurrencyConvertEJB/1.0/car] could not be resolved.
        at
org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:195)
        at
org.apache.felix.framework.util.SecureAction.getURLConnectionInputStream(SecureAction.java:487)
        at
org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:163)
        at 
org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:80)
        at 
org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:58)
        at
org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:1020)
        at
org.apache.felix.framework.cache.BundleArchive.revise(BundleArchive.java:631)
        at
org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:147)
        at
org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:169)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2374)
        ... 54 more


--> Servers
  +-> Apache Geronimo v3.0 Server at localhost [Started, Republish]
    +--> CurrencyCOnverterEJB [SYnchronized]
    +--> WebEJB [Error publishing module to server]


--> http://localhost:8080/console/

Web App WArs

Component Name  Display Name    URL      State          Commands
 org.apache.geronimo.configs/dojo-jetty/3.0-M1/car       Dojo Webapp     /dojo 
         running         Stop   Stop     Restart   Restart       Uninstall   
Uninstall 
 org.apache.geronimo.configs/remote-deploy-jetty/3.0-M1/car      Geronimo
Remote Deployer          /remote-deploy 
         running         Stop   Stop     Restart   Restart       Uninstall   
Uninstall 
 org.apache.geronimo.configs/welcome-jetty/3.0-M1/car    Welcome to Geronimo    
/ 
         running         Stop   Stop     Restart   Restart       Uninstall   
Uninstall 
 org.apache.geronimo.plugins/plugin-console-jetty/3.0-M1/car     Geronimo
Management Console Portlets      /plugin 
         running         Stop    Restart         Uninstall  


Application EARs

Component Name  URL      State          Commands
 org.apache.geronimo.plugins/console-jetty/3.0-M1/car            running        
 Stop   
Restart          Uninstall  


EJB JARs

Component Name   State          Commands
 default/CurrencyConverterEJB/1.0/car    running         Stop    Restart        
Uninstall  


so... the question is: what do i miss here?

joquetaire


--
View this message in context: 
http://apache-geronimo.328035.n3.nabble.com/EJB-and-Web-tutorial-3-0-deplyment-error-tp2844215p2844215.html
Sent from the Users mailing list archive at Nabble.com.

Reply via email to