I think you forgot the namespace on the plan, so geronimo didn't recognize it as something it could deploy (an error that comes from Deployer rather than a specific builder usually means that geronimo couldn't find a builder that could interpret your plan.  How about:

<?xml version="1.0" encoding="UTF-8"?>
<configuration configId="GBean1" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0">
  <dependency>
    <uri>yelu/GBean1/1/jar</uri>
  </dependency>
  <gbean name="MyGBean" class="com.businessobjects.geronimo.GBean1">
    <attribute name="attribute1">test1</attribute>
  </gbean>
</configuration>

thanks
david jencks


On Apr 7, 2006, at 3:52 PM, Ye Lu wrote:

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 <[EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED] > 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 < [EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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 < [EMAIL PROTECTED] > 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
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>


Reply via email to