I spend several hours to do this :
I want to share a javabean between two different webapps .... i want to get
fields and methods of a javabean that is stored in webapp2 from webapps1
I use Tomcat 5.0 and i have read
http://tomcat.apache.org/tomcat-5.0-doc/jndi-resources-howto.html but i get
no success!
Please.. do you have a simple example??.. that is.. code and configurations
(server.xml, web.xml, context.xml...)

follow my codes...
jndiWebShare1 is the folder under tomcat\webapps of webapp1
--------------------------------------------------------------------------
SharedBean1.java .. . under jndiWebShare1\WEB-INF\com\afterbit
---------------------------------------------------------------------------
/*
 * SharedBean1.java
 */

package com.afterbit;

/**
 *
 * @author Admin
 */
public class SharedBean1 {

    /** Creates a new instance of SharedBean1 */
    public SharedBean1() {
    }

    private String foo = "Shared Bean 1 : Value of FOO";
    private int bar = 0;

    public String getFoo() {
        return (this.foo);
    }

    public void setFoo(String foo) {
        this.foo = foo;
    }

    public int getBar() {
        return (this.bar);
    }

    public void setBar(int bar) {
        this.bar = bar;
    }


}


--------------------------------------------------------------------------
context.xml .. .under  jndiWebShare1\META-INF
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/jndiWebShare1" docBase="webapps/jndiWebShare1"
crossContext="true" debug="0" reloadable="true">
   <Resource name="bean/SharedBean1Factory" auth="Container"
            type="com.afterbit.SharedBean1"/>
   <ResourceParams name="bean/SharedBean1Factory">
      <parameter>
        <name>factory</name>
        <value>org.apache.naming.factory.BeanFactory</value>
      </parameter>
      <parameter>
        <name>bar</name>
        <value>23</value>
      </parameter>
    </ResourceParams>
</Context>

--------------------------------------------------------------------------
web.xml .. .under jndiWebShare1\WEB-INF
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; version="2.4">
<resource-env-ref>
  <description>Object factory for SharedBean1 instances.</description>
  <resource-env-ref-name>bean/SharedBean1Factory</resource-env-ref-
name>
  <resource-env-ref-type>com.afterbit.SharedBean1</resource-env-ref-
type>
</resource-env-ref>
</web-app>

--------------------------------------------------------------------------
index.jsp.. .JSP page with test bean under jndiWebShare1\
---------------------------------------------------------------------------
<[EMAIL PROTECTED] contentType="text/html"%>
<[EMAIL PROTECTED] pageEncoding="UTF-8"%>
<[EMAIL PROTECTED] import = "javax.naming.*" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd";>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
  </head>
  <body>
    <h1>JSP Page</h1>

    <%

    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    SharedBean1 bean = (SharedBean1) envCtx.lookup
("bean/SharedBean1Factory");
    out.println("foo = " + bean.getFoo() + ", bar = " + bean.getBar());

        %>
  </body>
</html>



but I get an exception...

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 17 in the jsp file: /index.jsp
Generated servlet error:
C:\jakarta-tomcat-5.0.27\work\Catalina\localhost\jndiWebShare1\org\apache\js
p\index_jsp.java:69: cannot resolve symbol
symbol  : class SharedBean1
location: class org.apache.jsp.index_jsp
    SharedBean1 bean = (SharedBean1)
envCtx.lookup("bean/SharedBean1Factory");

Of course if i put in my JSP page
<[EMAIL PROTECTED] import = "com.afterbit.*" %>  it works...but.. SharedBean1 
should be
a shared resource.. so no need to import com.afterbit..... no?!!

Thanks!
Roberto


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to