Hello all,
I'working in a new project using JBoss 4.2.0.GA and JBoss-Seam-2.0.0.BETA1.
This is my first project using Seam.
Here in the company we have the habit to separate a large project into small
subprojects. Also, we separate data access code, business code, presentation
code, etc. To simplify, in this project we have three subprojects. Lets call
this project as ProjectX, so we have the following subprojects:
- projectx-model
- projectx-business
- projectx-web
The projextx-model is a java class library (jar) that contains all the model
classes (we use hibernate). It contains nothing more than that.
The projectx-business is also a java class library (jar) and it contains all
the business classes of the application. This project uses the model classes
from the projectx-model. This project also declares some Seam componentes using
annotations.
The projectx-web is a web application project that uses the above projects and
deals only with the presentation layer of the application. This project has all
xhtml, css, images, etc. It also has some Seam components that interact with
the presentation code.
Ok, so my problem is that I'm not getting to use the Seam components that are
declared outside the web application (projectx-web). Searching the
documentation I found that the only thing you have to do to use Seam components
in others jar files is to put a components.xml file inside the jar where are
the components. I have done that. The components are found by the runtime and I
can see them in their respectives contexts in debug.seam page. However, when I
try to use them, I always get an error.
To clarify, I will post here a test component I created.
In the projectx-business I have only one class, TestComponent.java as follows:
| package br.com.techrobot.sirius.spc.tests;
|
| import org.jboss.seam.annotations.*;
| import br.com.techrobot.sirius.model.users.*;
|
| @AutoCreate
| @Name("testComponent")
| public class TestComponent
| {
| @In
| User currentUser;
|
| public String sayHello()
| {
| return "Hello world!";
| }
| }
|
The User class used above is a model class that represents the logged in user
of the application.
Also in the projectx-business I have a META-INF folder in the root of my source
folder. It contains only the components.xml file that is show below:
| <?xml version="1.0" encoding="UTF-8"?>
| <components xmlns="http://jboss.com/products/seam/components">
| </components>
|
In the web project (projectx-web) I have another components,
TestComponentAction.java, with the following code:
| package br.com.techrobot.sirius.web.tests;
|
| import java.io.*;
| import javax.ejb.*;
| import org.jboss.seam.annotations.*;
| import org.jboss.seam.log.*;
|
| import br.com.techrobot.sirius.model.users.*;
| import br.com.techrobot.sirius.spc.tests.*;
|
| @Name("testComponentAction")
| public class TestComponentAction implements Serializable
| {
| @Logger
| protected Log log;
|
| @In
| protected User currentUser;
|
| @In
| TestComponent testComponent;
|
| @Begin(join = true)
| public void create()
| {
| }
|
| @Remove
| @Destroy
| public void destroy()
| {
| }
|
| public void doSomething()
| {
| log.info(testComponent.sayHello());
| }
| }
|
This class receives the TestComponent (as also receives the current logged in
user) and does nothing more than sending the result of the sayHello method of
the TestComponent to the log.
And, still in the web project, I have the xhtml code that calls the doSomething
action. It is as follows:
| <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:rich="http://richfaces.ajax4jsf.org/rich"
| template="#{theme.template}">
|
| <h:form>
| <h:commandLink id="doSomething" value="Do Something"
| action="#{testComponentAction.doSomething}">
| </h:commandLink>
| </h:form>
| </ui:composition>
|
When I clich the "Do Something" button, I get the following exception:
| Exception during request processing:
| Caused by javax.servlet.ServletException with message:
"#{testComponentAction.doSomething}: java.lang.IllegalArgumentException: could
not set field value: testComponentAction.testComponent"
|
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
| Caused by javax.faces.FacesException with message:
"#{testComponentAction.doSomething}: java.lang.IllegalArgumentException: could
not set field value: testComponentAction.testComponent"
|
|
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
| javax.faces.component.UICommand.broadcast(UICommand.java:383)
| org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
| org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
|
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
|
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
| Caused by javax.faces.el.EvaluationException with message:
"java.lang.IllegalArgumentException: could not set field value:
testComponentAction.testComponent"
|
|
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
|
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
| javax.faces.component.UICommand.broadcast(UICommand.java:383)
| org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
| org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
|
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
|
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
| Caused by java.lang.IllegalArgumentException with message: "could not set
field value: testComponentAction.testComponent"
|
| org.jboss.seam.Component.setFieldValue(Component.java:1790)
| org.jboss.seam.Component.access$600(Component.java:138)
| org.jboss.seam.Component$BijectedField.set(Component.java:2621)
| org.jboss.seam.Component.injectAttributes(Component.java:1599)
| org.jboss.seam.Component.inject(Component.java:1417)
|
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:45)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
|
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
|
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
|
br.com.techrobot.sirius.web.tests.TestComponentAction_$$_javassist_8.doSomething(TestComponentAction_$$_javassist_8.java)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
|
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
|
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
|
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
| javax.faces.component.UICommand.broadcast(UICommand.java:383)
| org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
| org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
|
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
|
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
| Caused by java.lang.IllegalArgumentException with message: "Could not set
field value by reflection: TestComponentAction.testComponent on:
br.com.techrobot.sirius.web.tests.TestComponentAction with value: class
br.com.techrobot.sirius.spc.tests.TestComponent_$$_javassist_9"
|
| org.jboss.seam.util.Reflections.set(Reflections.java:81)
| org.jboss.seam.Component.setFieldValue(Component.java:1786)
| org.jboss.seam.Component.access$600(Component.java:138)
| org.jboss.seam.Component$BijectedField.set(Component.java:2621)
| org.jboss.seam.Component.injectAttributes(Component.java:1599)
| org.jboss.seam.Component.inject(Component.java:1417)
|
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:45)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
|
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
|
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
|
br.com.techrobot.sirius.web.tests.TestComponentAction_$$_javassist_8.doSomething(TestComponentAction_$$_javassist_8.java)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
|
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
|
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
|
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
| javax.faces.component.UICommand.broadcast(UICommand.java:383)
| org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
| org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
|
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
|
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
| Caused by java.lang.IllegalArgumentException with message: "Can not set
br.com.techrobot.sirius.spc.tests.TestComponent field
br.com.techrobot.sirius.web.tests.TestComponentAction.testComponent to
br.com.techrobot.sirius.spc.tests.TestComponent_$$_javassist_9"
|
|
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
|
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
|
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
| java.lang.reflect.Field.set(Field.java:657)
| org.jboss.seam.util.Reflections.set(Reflections.java:66)
| org.jboss.seam.Component.setFieldValue(Component.java:1786)
| org.jboss.seam.Component.access$600(Component.java:138)
| org.jboss.seam.Component$BijectedField.set(Component.java:2621)
| org.jboss.seam.Component.injectAttributes(Component.java:1599)
| org.jboss.seam.Component.inject(Component.java:1417)
|
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:45)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
|
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
|
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
|
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
|
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
|
br.com.techrobot.sirius.web.tests.TestComponentAction_$$_javassist_8.doSomething(TestComponentAction_$$_javassist_8.java)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
|
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
|
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
|
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
| javax.faces.component.UICommand.broadcast(UICommand.java:383)
| org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
| org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
|
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
|
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
|
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:150)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
|
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
|
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
|
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
|
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
|
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
|
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
|
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
|
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
|
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:619)
|
When I move the TestComponent.java to the source folder of the web application
(projectx-web), I don't get this error and everything works as expected.
This makes me think that the problem is about using a Seam component in
different projects (jar files), not within the web application.
Perhaps it could be some missing configuration?
So, that's all. I didn't find any sample code of something similar to this
approach we use here (separating projects). All I found is only one big web
application project that does everything. If any of you have some reference, it
would be very helpful.
Any help or tip is very welcome.
Thanks in advance,
Rodrigo.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096012#4096012
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096012
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user