You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Allen Guo <el...@gmail.com> on 2007/06/07 15:20:32 UTC

How to use the third-party T5 Component in another T5 project

Hi All,

I use T5.0.4. I packaged some common components to common.jar.
You know, in T3/4, we may add a configuration like contrib to
.application file. But how can I use it in my another project base on T5?


Thanks
Allen Guo


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5] StackMapTable format error: bad class index

Posted by Howard Lewis Ship <hl...@gmail.com>.
That's an odd one!

You've done the normal ... clean rebuild, fresh restart, etc?

Are you using any inner classes in your page/component?  I recently
fixed a bug (in 5.0.5) related to those.

If you can use 5.0.5 please do ... it produces much more comprehensive
exception data when an error occurs related to runtime bytecode
enhancement.

On 6/8/07, Siddhartha Argollo <sl...@tre-ba.gov.br> wrote:
> Hi all,
>
> First of all: I'm using the 5.0.5 snapshot with JBoss 4.0.5-GA.
> I have a component named LoginView. It shows the login status of the user.
> The thing is, if I implement the beginRender method in this way:
>
> @Inject
> private SecurityService security;
>
> void beginRender(MarkupWriter writer)
> {
> if( this.security.getAuthentication().isAuthenticated() )
> { ...
> writer.write(this.security.getAuthentication().getUserName());
> ....
> }
> else ...
> }
>
> The application works fine. But, if I change the code to this:
>
> @Inject
> private SecurityService security;
>
> void beginRender(MarkupWriter writer)
> {
> Authentication auth = this.security.getAuthentication();
> if( auth.isAuthenticated() )
> { ...
> writer.write(auth.getAuthentication().getUserName());
> ....
> }
> else ...
> }
>
> I receive the following exception:
>
> An unexpected application exception has occurred.
> ...
> * java.lang.ClassFormatError
> StackMapTable format error: bad class index
> ...
> Stack trace
> o java.lang.Class.getDeclaredConstructors0(Native Method)
> o java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> o java.lang.Class.getConstructors(Unknown Source)
> o
> org.apache.tapestry.internal.services.ReflectiveInstantiator.findConstructor(ReflectiveInstantiator.java:65)
> o
> org.apache.tapestry.internal.services.ReflectiveInstantiator.<init>(ReflectiveInstantiator.java:53)
> ....
>
> I just want to know if this is a bug, or if I´m missing something, or if
> I´m going crazy!
> Thanks.
>
> Sid.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


[T5] StackMapTable format error: bad class index

Posted by Siddhartha Argollo <sl...@tre-ba.gov.br>.
Hi all,

First of all: I'm using the 5.0.5 snapshot with JBoss 4.0.5-GA.
I have a component named LoginView. It shows the login status of the user.
The thing is, if I implement the beginRender method in this way:

@Inject
private SecurityService security;

void beginRender(MarkupWriter writer)
{
if( this.security.getAuthentication().isAuthenticated() )
{ ...
writer.write(this.security.getAuthentication().getUserName());
....
}
else ...
}

The application works fine. But, if I change the code to this:

@Inject
private SecurityService security;

void beginRender(MarkupWriter writer)
{
Authentication auth = this.security.getAuthentication();
if( auth.isAuthenticated() )
{ ...
writer.write(auth.getAuthentication().getUserName());
....
}
else ...
}

I receive the following exception:

An unexpected application exception has occurred.
...
* java.lang.ClassFormatError
StackMapTable format error: bad class index
...
Stack trace
o java.lang.Class.getDeclaredConstructors0(Native Method)
o java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
o java.lang.Class.getConstructors(Unknown Source)
o 
org.apache.tapestry.internal.services.ReflectiveInstantiator.findConstructor(ReflectiveInstantiator.java:65)
o 
org.apache.tapestry.internal.services.ReflectiveInstantiator.<init>(ReflectiveInstantiator.java:53)
....

I just want to know if this is a bug, or if I´m missing something, or if 
I´m going crazy!
Thanks.

Sid.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to use the third-party T5 Component in another T5 project

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Fri, 08 Jun 2007 07:47:21 -0300, Allen Guo <el...@gmail.com> wrote:

> Nobody answer me ? :(
>> Hi All,
>>
>> I use T5.0.4. I packaged some common components to common.jar.
>> You know, in T3/4, we may add a configuration like contrib to
>> .application file. But how can I use it in my another project base on  
>> T5?

All you need to do is to put your library/package in the application  
classpath.
Tapestry-IoC searches the classpath trying to find JARs that have a  
Tapestry-Module-Classes antry in its manifest file and autoloads the  
module classes specified there. This is just wonderful. :)
Take a look at  
http://tapestry.apache.org/tapestry5/tapestry-ioc/module.html and search  
"Autoloading" for more details.

Thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to use the third-party T5 Component in another T5 project

Posted by 蝈蝈龙 <el...@gmail.com>.
I did it on your suggestion. It's working now :)
Thank you

2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
>
> try "opend/Radio" ... :)
>
>
>
> "蝈蝈龙" <el...@gmail.com>
> 08.06.2007 13:56
> Bitte antworten an
> "Tapestry users" < users@tapestry.apache.org>
>
>
> An
> "Tapestry users" <us...@tapestry.apache.org>
> Kopie
>
> Thema
> Re: How to use the third-party T5 Component in another T5 project
>
>
>
>
>
>
> I added the code to AppModule.class
>    onfiguration.add(new LibraryMapping("opend","org.opend.corelib"));
> Then refer to the component in html template like this
>   <span t:type="opend:Radio" />
> Am I right? It always throw the exception below
>
> Unable to resolve component type 'opend:Radio' to a component class name.
> Available component types: FlatImg, Layout, core/ActionLink, core/Any,
> core/BeanEditForm, core/Checkbo........................
>
> 2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
> >
> > just forget what i said before....
> >
> > you can use a LibraryMapping to add other component libraries.
> > therefore you have to contribute your library (that contains a prefix
> > and the root package) to a tapestry ioc service:
> >
> > in you AppModule class
> >
> > public static void
> > contributeComponentClassResolver(Configuration<LibraryMapping>
> > configuration)
> >     {
> >         configuration.add(new LibraryMapping("whatever",
> > "org.whatever.mycomponents"));
> >     }
> >
> > g
> > kris
> >
> >
> >
> >
> > "蝈蝈龙" <el...@gmail.com>
> > 08.06.2007 13:31
> > Bitte antworten an
> > "Tapestry users" < users@tapestry.apache.org>
> >
> >
> > An
> > "Tapestry users" <us...@tapestry.apache.org>
> > Kopie
> >
> > Thema
> > Re: How to use the third-party T5 Component in another T5 project
> >
> >
> >
> >
> >
> >
> > But I can only a tapestry.app-package in web.xml
> > And another question is ,
> > if the component have the same name with the component in my project,
> what
> > should I do?
> >
> > 2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
> > >
> > > i think you have to deploy the jar (make it available in the
> classpath)
> > > and add the new package path to the tapestry.app-package
> > > parameter in web.xml
> > >
> > > g
> > > kris
> > >
> > >
> > >
> > >
> > > Allen Guo < elon.guo@gmail.com>
> > > 08.06.2007 12:47
> > > Bitte antworten an
> > > "Tapestry users" <users@tapestry.apache.org >
> > >
> > >
> > > An
> > > Tapestry users <us...@tapestry.apache.org>
> > > Kopie
> > >
> > > Thema
> > > Re: How to use the third-party T5 Component in another T5 project
> > >
> > >
> > >
> > >
> > >
> > >
> > > Nobody answer me ? :(
> > > > Hi All,
> > > >
> > > > I use T5.0.4. I packaged some common components to common.jar.
> > > > You know, in T3/4, we may add a configuration like contrib to
> > > > .application file. But how can I use it in my another project base
> on
> > > T5?
> > > >
> > > >
> > > > Thanks
> > > > Allen Guo
> > > >
> > > >
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > > For additional commands, e-mail: users-help@tapestry.apache.org
> > >
> > >
> > >
> >
> >
> >
>
>
>

Re: How to use the third-party T5 Component in another T5 project

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
try "opend/Radio" ... :)



"蝈蝈龙" <el...@gmail.com> 
08.06.2007 13:56
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
"Tapestry users" <us...@tapestry.apache.org>
Kopie

Thema
Re: How to use the third-party T5 Component in another T5 project






I added the code to AppModule.class
   onfiguration.add(new LibraryMapping("opend","org.opend.corelib"));
Then refer to the component in html template like this
  <span t:type="opend:Radio" />
Am I right? It always throw the exception below

Unable to resolve component type 'opend:Radio' to a component class name.
Available component types: FlatImg, Layout, core/ActionLink, core/Any,
core/BeanEditForm, core/Checkbo........................

2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
>
> just forget what i said before....
>
> you can use a LibraryMapping to add other component libraries.
> therefore you have to contribute your library (that contains a prefix
> and the root package) to a tapestry ioc service:
>
> in you AppModule class
>
> public static void
> contributeComponentClassResolver(Configuration<LibraryMapping>
> configuration)
>     {
>         configuration.add(new LibraryMapping("whatever",
> "org.whatever.mycomponents"));
>     }
>
> g
> kris
>
>
>
>
> "蝈蝈龙" <el...@gmail.com>
> 08.06.2007 13:31
> Bitte antworten an
> "Tapestry users" <us...@tapestry.apache.org>
>
>
> An
> "Tapestry users" <us...@tapestry.apache.org>
> Kopie
>
> Thema
> Re: How to use the third-party T5 Component in another T5 project
>
>
>
>
>
>
> But I can only a tapestry.app-package in web.xml
> And another question is ,
> if the component have the same name with the component in my project, 
what
> should I do?
>
> 2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
> >
> > i think you have to deploy the jar (make it available in the 
classpath)
> > and add the new package path to the tapestry.app-package
> > parameter in web.xml
> >
> > g
> > kris
> >
> >
> >
> >
> > Allen Guo <el...@gmail.com>
> > 08.06.2007 12:47
> > Bitte antworten an
> > "Tapestry users" <us...@tapestry.apache.org>
> >
> >
> > An
> > Tapestry users <us...@tapestry.apache.org>
> > Kopie
> >
> > Thema
> > Re: How to use the third-party T5 Component in another T5 project
> >
> >
> >
> >
> >
> >
> > Nobody answer me ? :(
> > > Hi All,
> > >
> > > I use T5.0.4. I packaged some common components to common.jar.
> > > You know, in T3/4, we may add a configuration like contrib to
> > > .application file. But how can I use it in my another project base 
on
> > T5?
> > >
> > >
> > > Thanks
> > > Allen Guo
> > >
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@tapestry.apache.org
> >
> >
> >
>
>
>



Re: How to use the third-party T5 Component in another T5 project

Posted by 蝈蝈龙 <el...@gmail.com>.
I added the code to AppModule.class
   onfiguration.add(new LibraryMapping("opend","org.opend.corelib"));
Then refer to the component in html template like this
  <span t:type="opend:Radio" />
Am I right? It always throw the exception below

Unable to resolve component type 'opend:Radio' to a component class name.
Available component types: FlatImg, Layout, core/ActionLink, core/Any,
core/BeanEditForm, core/Checkbo........................

2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
>
> just forget what i said before....
>
> you can use a LibraryMapping to add other component libraries.
> therefore you have to contribute your library (that contains a prefix
> and the root package) to a tapestry ioc service:
>
> in you AppModule class
>
> public static void
> contributeComponentClassResolver(Configuration<LibraryMapping>
> configuration)
>     {
>         configuration.add(new LibraryMapping("whatever",
> "org.whatever.mycomponents"));
>     }
>
> g
> kris
>
>
>
>
> "蝈蝈龙" <el...@gmail.com>
> 08.06.2007 13:31
> Bitte antworten an
> "Tapestry users" <us...@tapestry.apache.org>
>
>
> An
> "Tapestry users" <us...@tapestry.apache.org>
> Kopie
>
> Thema
> Re: How to use the third-party T5 Component in another T5 project
>
>
>
>
>
>
> But I can only a tapestry.app-package in web.xml
> And another question is ,
> if the component have the same name with the component in my project, what
> should I do?
>
> 2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
> >
> > i think you have to deploy the jar (make it available in the classpath)
> > and add the new package path to the tapestry.app-package
> > parameter in web.xml
> >
> > g
> > kris
> >
> >
> >
> >
> > Allen Guo <el...@gmail.com>
> > 08.06.2007 12:47
> > Bitte antworten an
> > "Tapestry users" <us...@tapestry.apache.org>
> >
> >
> > An
> > Tapestry users <us...@tapestry.apache.org>
> > Kopie
> >
> > Thema
> > Re: How to use the third-party T5 Component in another T5 project
> >
> >
> >
> >
> >
> >
> > Nobody answer me ? :(
> > > Hi All,
> > >
> > > I use T5.0.4. I packaged some common components to common.jar.
> > > You know, in T3/4, we may add a configuration like contrib to
> > > .application file. But how can I use it in my another project base on
> > T5?
> > >
> > >
> > > Thanks
> > > Allen Guo
> > >
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@tapestry.apache.org
> >
> >
> >
>
>
>

Re: How to use the third-party T5 Component in another T5 project

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
just forget what i said before....

you can use a LibraryMapping to add other component libraries.
therefore you have to contribute your library (that contains a prefix
and the root package) to a tapestry ioc service:

in you AppModule class

public static void 
contributeComponentClassResolver(Configuration<LibraryMapping> 
configuration)
    {
        configuration.add(new LibraryMapping("whatever", 
"org.whatever.mycomponents"));
    }

g
kris




"蝈蝈龙" <el...@gmail.com> 
08.06.2007 13:31
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
"Tapestry users" <us...@tapestry.apache.org>
Kopie

Thema
Re: How to use the third-party T5 Component in another T5 project






But I can only a tapestry.app-package in web.xml
And another question is ,
if the component have the same name with the component in my project, what
should I do?

2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
>
> i think you have to deploy the jar (make it available in the classpath)
> and add the new package path to the tapestry.app-package
> parameter in web.xml
>
> g
> kris
>
>
>
>
> Allen Guo <el...@gmail.com>
> 08.06.2007 12:47
> Bitte antworten an
> "Tapestry users" <us...@tapestry.apache.org>
>
>
> An
> Tapestry users <us...@tapestry.apache.org>
> Kopie
>
> Thema
> Re: How to use the third-party T5 Component in another T5 project
>
>
>
>
>
>
> Nobody answer me ? :(
> > Hi All,
> >
> > I use T5.0.4. I packaged some common components to common.jar.
> > You know, in T3/4, we may add a configuration like contrib to
> > .application file. But how can I use it in my another project base on
> T5?
> >
> >
> > Thanks
> > Allen Guo
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
>



Re: How to use the third-party T5 Component in another T5 project

Posted by 蝈蝈龙 <el...@gmail.com>.
But I can only a tapestry.app-package in web.xml
And another question is ,
if the component have the same name with the component in my project, what
should I do?

2007/6/8, Kristian Marinkovic <kr...@porsche.co.at>:
>
> i think you have to deploy the jar (make it available in the classpath)
> and add the new package path to the tapestry.app-package
> parameter in web.xml
>
> g
> kris
>
>
>
>
> Allen Guo <el...@gmail.com>
> 08.06.2007 12:47
> Bitte antworten an
> "Tapestry users" <us...@tapestry.apache.org>
>
>
> An
> Tapestry users <us...@tapestry.apache.org>
> Kopie
>
> Thema
> Re: How to use the third-party T5 Component in another T5 project
>
>
>
>
>
>
> Nobody answer me ? :(
> > Hi All,
> >
> > I use T5.0.4. I packaged some common components to common.jar.
> > You know, in T3/4, we may add a configuration like contrib to
> > .application file. But how can I use it in my another project base on
> T5?
> >
> >
> > Thanks
> > Allen Guo
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
>

Re: How to use the third-party T5 Component in another T5 project

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
i think you have to deploy the jar (make it available in the classpath) 
and add the new package path to the tapestry.app-package
parameter in web.xml

g
kris




Allen Guo <el...@gmail.com> 
08.06.2007 12:47
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
Re: How to use the third-party T5 Component in another T5 project






Nobody answer me ? :(
> Hi All,
>
> I use T5.0.4. I packaged some common components to common.jar.
> You know, in T3/4, we may add a configuration like contrib to
> .application file. But how can I use it in my another project base on 
T5?
>
>
> Thanks
> Allen Guo
>
>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org



Re: How to use the third-party T5 Component in another T5 project

Posted by Allen Guo <el...@gmail.com>.
Nobody answer me ? :(
> Hi All,
>
> I use T5.0.4. I packaged some common components to common.jar.
> You know, in T3/4, we may add a configuration like contrib to
> .application file. But how can I use it in my another project base on T5?
>
>
> Thanks
> Allen Guo
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org