Okay, I figured out the issue.
In Geronimo 1.0, I did not get this error when deploying.
But in order to implement another class in a gbean for Geronimo 1.1, the gbean
deployment plan must also include the dependencies of the class it is implementing.
I added these dependencies into the plan, and now my gbean deploys:
-
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee_1.4_spec</artifactId>
<version>1.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.4_spec</artifactId>
<version>1.0.1</version>
<type>jar</type>
</dependency>
-
However, I get a startup error after deploying due to a configuration error.
I will send a separate e-mail for this issue.
-RG
Aaron Mulder wrote:
So the only dependencies your plan is declaring are on catalina,
catalina-cluster, and wnode JARs? I don't see anything on that list
indicating that the Servlet API should be included on the class path.
I think you have two choices -- one is to add the servlet API JAR as a
dependency, and the other is to add a dependency on a module such as
geronimo/tomcat/*/car which would already have the servlet API on its
class path.
Thanks,
Aaron
On 7/21/06, Russell E Glaue <[EMAIL PROTECTED]> wrote:
Okay.
Thanks to Jason, I got the hostinfoGBean deployed successfully.
now the next error...
I also want to report in the hostinfoGBean how many sessions are on a
node in
the cluster.
So I edited my hostinfoGBean class to extend DeltaManager and then
added a
function getSessionCount.
It compiles successfully.
And it deploys in Geronimo 1.1, although with an error on deployment:
deploy.sh deploy target/wnode-1.0.jar wnode-plan.xml
-
Exception in thread "Thread-4" java.lang.NoClassDefFoundError:
javax/servlet/http/HttpSession
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at
org.apache.geronimo.kernel.classloader.JarFileClassLoader.access$200(JarFileClassLoader.java:51)
at
org.apache.geronimo.kernel.classloader.JarFileClassLoader$6.run(JarFileClassLoader.java:275)
at java.security.AccessController.doPrivileged(Native Method)
... snip ...
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
-
When deploying a similar GBean that extends DeltaManager in Geronimo
1.0, I did
not get this error.
Do I have to add another dependency in the deployment plan? I could
not find the
artifact in the geronimo 1.1 repository that contains the javax
HttpSession
class (Did I not look hard enough?). Do I have to deploy a new
artifact to
Geronimo 1.1?
Here is my updated code, the deployment plan has not changed.
java file: org/cait/wnode/hostinfoGBean.java
-
package org.cait.wnode;
import java.util.HashMap;
import org.apache.commons.logging.*;
import org.apache.catalina.cluster.session.DeltaManager;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
public class hostinfoGBean extends DeltaManager implements
GBeanLifecycle {
public static final GBeanInfo GBEAN_INFO;
private static final Log glog =
LogFactory.getLog(hostinfoGBean.class);
public static GBeanInfo getGBeanInfo(){
return GBEAN_INFO;
}
static{
GBeanInfoBuilder infoBuilder = new
GBeanInfoBuilder("hostinfoGBean",hostinfoGBean.class);
infoBuilder.addInterface(hostinfoGBean.class);
GBEAN_INFO = infoBuilder.getBeanInfo();
}
public void doFail() {
glog.info("Service failed");
// TODO Auto-generated method stub
}
public void doStart() throws Exception {
glog.info("Service started");
// TODO Auto-generated method stub
}
public void doStop() throws Exception {
glog.info("Service stopped");
// TODO Auto-generated method stub
}
public String getName() {
return "node1.domain-noc1.test.com";
}
public String getPort() {
return "80";
}
public int getSessionCount() {
HashMap SessionHashMap = this.sessions;
int NumberOfSessions = 0;
NumberOfSessions = SessionHashMap.size();
return NumberOfSessions;
}
}
-
deployment plan: wnode-plan.xml
-
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<environment>
<moduleId>
<groupId>wnode</groupId>
<artifactId>wnode</artifactId>
<version>1.0</version>
<type>jar</type>
</moduleId>
<dependencies>
<dependency>
<groupId>tomcat</groupId>
<artifactId>catalina-cluster</artifactId>
<version>5.5.15</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>catalina</artifactId>
<version>5.5.15</version>
<type>jar</type>
</dependency>
</dependencies>
</environment>
<gbean name='hostinfoGBean'
class='org.cait.wnode.hostinfoGBean'></gbean>
</module>
-