Hi Aaron,
I commented out the addOperation calls and re-jared and tried to deploy
again. Still the same error. The command that I used to deply is
"*java -jar bin\deployer.jar --user system --password manager --verbose
deploy GBean1-plan.xml*". There is no error message on the server side and
the error message I got on the client side is
Error: Unable to distribute GBean1-plan.xml: Cannot deploy the
requested application module
(planFile=D:\geronimo-1.0\GBean1-plan.xml)
org.apache.geronimo.common.DeploymentException: Cannot deploy the
requested application module
(planFile=D:\geronimo-1.0\GBean1-plan.xml)
at
org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:226)
at
org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:102)
at
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<
generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker
.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(
GBeanOperation.java:
118)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(
GBeanInstance.java:83
5)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java
:178)
at
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125)
at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<g
enerated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker
.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(
GBeanOperation.java:
118)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(
GBeanInstance.java:83
5)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java
:178)
at
org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke
(MBeanServerDelegat
e.java:117)
at
mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java
:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
at
mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain
(RMIConnectionSubjectInvoke
r.java:99)
at
mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000
(RMIConnectionSubjectI
nvoker.java:31)
at
mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run
(RMIConnectionSubjectInvoke
r.java:90)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
at
mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
at
mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke
(RMIConnectionSubje
ctInvoker.java:86)
at
mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke
(RMIConnectionSubjectInvok
er.java:80)
at $Proxy0.invoke(Unknown Source)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(
RMIConnectionImpl.java:
221)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(
TCPTransport.java:7
01)
at java.lang.Thread.run(Thread.java:534)
Thanks.
Ye
On 4/7/06, Aaron Mulder <ammulder@alumni.princeton.edu> wrote:
>
> Well, you certainly don't need the addOperation declarations -- the
> getter and setter there are already configuration when you add the
> attribute.
>
> Can you post the specific command you're running and error message
> you're getting with stack trace if any?
>
> Thanks,
> Aaron
>
> On 4/7/06, Ye Lu <yel728@gmail.com> wrote:
> >
> > Hi Aaron,
> >
> > I just tried deploying with your modified deployment plan and still got
> the
> > same error. Could there be something wrong with the gbean itself? Here
> is
> > the source code for my test gbean. Any ideas?
> >
> > Thanks.
> >
> > Ye
> >
> > ---------------
> >
> >
> > package com.businessobjects.geronimo;
> >
> > import javax.management.MalformedObjectNameException;
> > import javax.management.ObjectName;
> >
> > import org.apache.geronimo.gbean.GBeanInfo;
> > import org.apache.geronimo.gbean.GBeanInfoBuilder;
> > import org.apache.geronimo.gbean.GBeanLifecycle;
> >
> > //import org.apache.geronimo.kernel.jmx.JMXUtil;
> >
> > /**
> > * Class AxisGbean
> > */
> > public class GBean1 implements GBeanLifecycle {
> >
> > private static final GBeanInfo GBEAN_INFO;
> >
> > private final ObjectName objectName;
> >
> > private String attribute1;
> >
> > private String attribute2;
> >
> > private String attribute3;
> >
> > static {
> > GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(GBean1.class
> > .getName(), GBean1.class);
> >
> > // attributes
> > infoFactory.addAttribute("objectName", String.class, false);
> >
> > infoFactory.addAttribute("attribute1", String.class, true);
> > infoFactory.addAttribute("attribute2", String.class, true);
> > infoFactory.addAttribute("attribute3", String.class, true);
> >
> > infoFactory.addOperation("setAttribute1", new Class[] { String.class});
> > infoFactory.addOperation("getAttribute1");
> >
> > // operations
> > infoFactory.setConstructor(new String[] { "objectName" });
> > GBEAN_INFO = infoFactory.getBeanInfo();
> > }
> >
> > /**
> > * Constructor AxisGbean
> > *
> > * @param name
> > * @param objectName
> > */
> > public GBean1(String objectName) throws MalformedObjectNameException {
> > this.objectName = ObjectName.getInstance(objectName);
> > }
> >
> > public GBean1() {
> > objectName = null;
> > }
> >
> > /**
> > * Method doFail
> > */
> > public void doFail() {
> > }
> >
> > /**
> > * Method doStart
> > *
> > * @throws Exception
> > */
> > public void doStart() throws Exception {
> > System.out.println("GBean " + objectName + " Started");
> > }
> >
> > /**
> > * Method doStop
> > *
> > * @throws Exception
> > */
> > public void doStop() throws Exception {
> > System.out.println("GBean " + objectName + " Stoped");
> > }
> >
> > /**
> > * Method getGBeanInfo
> > *
> > * @return
> > */
> > public static GBeanInfo getGBeanInfo() {
> > return GBEAN_INFO;
> > }
> >
> > /**
> > * @return Returns the attribute1.
> > */
> > public String getAttribute1() {
> > return attribute1;
> > }
> >
> > /**
> > * @param attribute1
> > * The attribute1 to set.
> > */
> > public void setAttribute1(String attribute1) {
> > this.attribute1 = attribute1;
> > }
> >
> > /**
> > * @return Returns the attribute2.
> > */
> > public String getAttribute2() {
> > return attribute2;
> > }
> >
> > /**
> > * @param attribute2
> > * The attribute2 to set.
> > */
> > public void setAttribute2(String attribute2) {
> > this.attribute2 = attribute2;
> > }
> >
> > /**
> > * @return Returns the attribute3.
> > */
> > public String getAttribute3() {
> > return attribute3;
> > }
> >
> > /**
> > * @param attribute3
> > * The attribute3 to set.
> > */
> > public void setAttribute3(String attribute3) {
> > this.attribute3 = attribute3;
> > }
> > }
> >
> >
> >
> > On 4/7/06, Aaron Mulder <ammulder@alumni.princeton.edu> wrote:
> > > How about:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <configuration configId="GBean1">
> > > <dependency>
> > > <uri>yelu/GBean1/1/jar</uri>
> > > </dependency>
> > > <gbean name="MyGBean"
> > class="com.businessobjects.geronimo.GBean1">
> > > <attribute name="attribute1">test1</attribute>
> > > </gbean>
> > > </configuration>
> > >
> > > (assuming your JAR is at repository/yelu/jars/GBean1-1.jar
> > >
> > > Thanks,
> > > Aaron
> > >
> > > On 4/7/06, Ye Lu <yel728@gmail.com> wrote:
> > > >
> > > > Hi Aaron,
> > > >
> > > > Sorry about the confusion. Perhaps my previous message wasn't clear
> > enough.
> > > > I meant to say that I had been using the deploy tool all along in
> the
> > way
> > > > that you have suggested but still got the deployment error. I also
> > tried
> > > > the hot deploy method, but that didn't work either for the reason
> you
> > stated
> > > > below. I asked one of my co-workers to try deploying a gbean with
> the
> > > > deploy tool using your suggested method and he got exactly the same
> > error as
> > > > I did. Here is my deployment plan again:
> > > >
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <configuration configId="GBean1">
> > > > <dependency>
> > > > <uri>yelu/GBean1/1/jar</uri>
> > > >
> > > > </dependency>
> > > > <gb:gbean xmlns:gb="
> > > > http://geronimo.apache.org/xml/ns/deployment-1.0"
> > > > name="geronimo.server:type=GBean "
> > > > class="com.businessobjects.geronimo.GBean1">
> > > > <gb:attribute name="attribute1" type="java.lang.String">
> > > > test1
> > > > </gb:attribute>
> > > > </gb:gbean>
> > > > </configuration>
> > > >
> > > >
> > > > The jar file is in
> > > > geronimo/repository/yelu/jars/GBean1-1.jar. Any
> > > > suggestions?
> > > >
> > > >
> > > > Thanks.
> > > >
> > > > Ye
> > > >
> > > >
> > > > On 4/7/06, Aaron Mulder <ammulder@alumni.princeton.edu> wrote:
> > > > > Sorry, there's a bug in the hot deployer in 1.0 and it can't
> deploy
> > > > > service plans (that is, anything except a J2EE application or
> module).
> > > > > If you use the deploy tool it should work. The fix for this bug
> is
> > > > > already in, but you won't see it until the 1.1 release unless you
> > > > > build from SVN HEAD. The command you can run is:
> > > > >
> > > > > java -jar bin/deployer.jar deploy GBean1-plan.xml
> > > > >
> > > > > Thanks,
> > > > > Aaron
> > > > >
> > > > > On 4/7/06, Ye Lu <yel728@gmail.com > wrote:
> > > > > >
> > > > > > HI Aaron,
> > > > > >
> > > > > > I did exactly as you suggested below, but I am still getting
the
> > > > following
> > > > > > error message:
> > > > > >
> > > > > >
> > > > > > Error: Unable to distribute GBean1-plan.xml: Cannot deploy the
> > > > > > requested application module
> > > > > > (planFile=D:\geronimo-1.0\GBean1-plan.xml)
> > > > > >
> > > > > >
> > > > > > I took care to ensure that the gbean is compiled and jared with
> 1.4
> > as
> > > > well
> > > > > > and that didn't help either. I tried putting the deployment
> plan
> > into
> > > > the
> > > > > > deply directory and I got the following server side exception:
> > > > > >
> > > > > > 11:22:56,834 INFO [Hot Deployer] Deploying GBean1-plan.xml
> > > > > > 11:22:56,959 ERROR [Hot Deployer] Unable to deploy: Cound not
> open
> > > > module
> > > > > > file:
> > > > > >
> > > >
> > D:\geronimo-1.0\var\temp\geronimo-deployer24954.tmpdir\GBean1-plan.xml
> > > > > > org.apache.geronimo.common.DeploymentException :
> > Cound
> > > > not
> > > > > > open module file: D:\g
> > > > > >
> > > >
> > eronimo-1.0\var\temp\geronimo-deployer24954.tmpdir\GBean1-plan.xml
> > > > > > at
> > > > > >
> > > > org.apache.geronimo.deployment.Deployer.deploy
> > (Deployer.java
> > > > > > :209)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:102)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.i
> > > > > > nvoke(<generated>)
> > > > > > at net.sf.cglib.reflect.FastMethod.invoke
> > > > > > (FastMethod.java:53)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
> > (FastMethod
> > > > > > Invoker.java:38)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio
> > > > > > n.java:118)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.
> > > > > > java:835)
> > > > > > at
> > > > > >
> > > > org.apache.geronimo.kernel.basic.BasicKernel.invoke
> > (BasicKernel.java:
> > > > > > 178)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doD
> > > > > > eploy(AbstractDeployCommand.java :106)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(Dis
> > > > > > tributeCommand.java:59)
> > > > > > at java.lang.Thread.run(Thread.java :534)
> > > > > > Caused by: java.util.zip.ZipException : error in opening zip
> file
> > > > > > at java.util.zip.ZipFile.open(Native Method)
> > > > > > at java.util.zip.ZipFile.<init>( ZipFile.java:111)
> > > > > > at java.util.jar.JarFile.<init>(JarFile.java :127)
> > > > > > at java.util.jar.JarFile.<init>(JarFile.java:92)
> > > > > > at
> > > > > >
> > > >
> > org.apache.geronimo.deployment.util.DeploymentUtil.createJarFile(Depl
> > > > > > oymentUtil.java:164)
> > > > > > at
> > > > org.apache.geronimo.deployment.Deployer.deploy
> > > > > > ( Deployer.java:207)
> > > > > > ... 10 more
> > > > > >
> > > > > > I don't know what I can try next. Please advice. Thanks.
> > > > > >
> > > > > >
> > > > > > Ye
> > > > > >
> > > > > >
> > > > > > On 4/7/06, Aaron Mulder <ammulder@alumni.princeton.edu>
wrote:
> > > > > > > You should put your JAR at, say, repository/yelu/jars/gbean-
> 1.jar
> > --
> > > > > > > note that it has the form
> > > > > > repository/<group>/jars/<file>-<version>.jar
> > > > > > > where group, file, and version can be anything you like,
but
> need
> > to
> > > > > > > be present and with a dash before the version.
> > > > > > >
> > > > > > > Then set your dependency URI to group/<file>/<version>/jar
> (like
> > > > > > > yelu/gbean/1/jar if you follow the path I used exactly).
> > > > > > >
> > > > > > > Le me know how you make out.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Aaron
> > > > > > >
> > > > > > > On 4/7/06, Ye Lu < yel728@gmail.com> wrote:
> > > > > > > >
> > > > > > > > Hi Aaron,
> > > > > > > >
> > > > > > > > Thanks for your quick reply. I tried your suggestion
and
> added
> > a
> > > > > > dependency
> > > > > > > > element in the deployment plan and copied GBean1.jar
into
> > > > > > > > geronimo/repository/GBean1/jars and I did not pass
the JAR
> file
> > to
> > > > the
> > > > > > > > deployer. The following is the modified deployment
plan.
> > > > > > > >
> > > > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > > > > <configuration configId="GBean1">
> > > > > > > > <dependency>
> > > > > > > > <uri>GBean1/jars</uri>
> > > > > > > > </dependency>
> > > > > > > >
> > > > > > > > <gb:gbean xmlns:gb="
> > > > > > > >
> > http://geronimo.apache.org/xml/ns/deployment-1.0"
> > > > > > > > name="geronimo.server:type=GBean"
> > > > > > > > class="com.businessobjects.geronimo.GBean1">
> > > > > > > > <gb:attribute name="attribute1" type=" java.lang.String">
> > > > > > > > test1
> > > > > > > > </gb:attribute>
> > > > > > > > </gb:gbean>
> > > > > > > > </configuration>
> > > > > > > >
> > > > > > > >
> > > > > > > > I also tried putting GBean1/jars and GBean1/jars/GBean1.jar
> as
> > the
> > > > uri,
> > > > > > but
> > > > > > > > both times I got the following error:
> > > > > > > >
> > > > > > > > Error: Unable to distribute GBean1-plan.xml: Cannot
deploy
> the
> > > > > > > > requested application module
> > > > > > > > (planFile=D:\geronimo- 1.0\GBean1-plan.xml)
> > > > > > > >
> > > > > > > > Any suggestion you can give will be greatly appreciated.
> > Thanks.
> > > > > > > >
> > > > > > > >
> > > > > > > > Ye
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 4/6/06, Aaron Mulder < ammulder@alumni.princeton.edu>
> wrote:
> > > > > > > > > You can't pass a JAR and plan to the deployer
for a custom
> > GBean.
> > > > > > > > > Instead, you need to install the JAR under
> geronimo/repository
> > and
> > > > > > > > > refer to it from a dependency element in the
plan for the
> > GBean.
> > > > Does
> > > > > > > > > that make sense or do you need some more detailed
help?
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Aaron
> > > > > > > > >
> > > > > > > > > On 4/6/06, Ye Lu < yel728@gmail.com > wrote:
> > > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > >
> > > > > > > > > > I am currently running Geronimo 1.0. When
I tried to
> deploy
> > a
> > > > GBean
> > > > > > > > using
> > > > > > > > > > the command "java -jar bin\deployer.jar
--user system
> > --password
> > > > > > manager
> > > > > > > > > > deploy
> > > > > > > >
> > d:\geronimo-1.0\repository\GBean1\jars\GBean1.jar
> > > > > > > > > > GBean1-plan.xml ", I got the following error:
> > > > > > > > > >
> > > > > > > > > > Error: Unable to distribute GBean1.jar:
Cannot
> deploy
> > the
> > > > > > requested
> > > > > > > > > > application module (planFile=D:\geronimo-
> > > > 1.0\GBean1-plan.xml,
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > moduleFile=D:\geronimo-
> 1.0\var\temp\geronimo-deployer382.tmpdir\GBean1.jar
> > > > > > > > > > )
> > > > > > > > > >
> > > > > > > > > > My deployment plan is
> > > > > > > > > >
> > > > > > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > > > > > > <configuration configId="GBean1">
> > > > > > > > > > <gb:gbean
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > xmlns:gb="http://geronimo.apache.org/xml/ns/deployment-1.0
> > > > > > > > > > " name=" geronimo.server:type=GBean"
> > > > > > > > > >
> > class="com.businessobjects.geronimo.GBean1">
> > > > > > > > > > <gb:attribute name="attribute1" type="
java.lang.String
> ">
> > > > > > > > > > test1
> > > > > > > > > > </gb:attribute>
> > > > > > > > > > </gb:gbean>
> > > > > > > > > > </configuration>
> > > > > > > > > >
> > > > > > > > > > I did a quick trace into the source code
and found that
> the
> > > > value of
> > > > > > > > builder
> > > > > > > > > > after the following loop is null and that
cause the
> > exception to
> > > > be
> > > > > > > > thrown.
> > > > > > > > > >
> > > > > > > > > > Object plan = null;
> > > > > > > > > > ConfigurationBuilder builder
= null;
> > > > > > > > > > for (Iterator i = builders.iterator();
> > i.hasNext();)
> > > > {
> > > > > > > > > > ConfigurationBuilder candidate
=
> > > > > > (ConfigurationBuilder)
> > > > > > > > > > i.next();
> > > > > > > > > > plan = candidate.getDeploymentPlan
> (planFile,
> > > > > > module);
> > > > > > > > > > if (plan != null) {
> > > > > > > > > > builder = candidate;
> > > > > > > > > > break;
> > > > > > > > > > }
> > > > > > > > > > }
> > > > > > > > > >
> > > > > > > > > > Can you tell me what I have done wrong?
Thanks in
> advance.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Ye
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> >
> >
>
|