geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joquetaire <joqueta...@chlewik.pl>
Subject EJB and Web tutorial 3.0 --> deplyment error
Date Thu, 21 Apr 2011 00:24:36 GMT
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.

Mime
View raw message