>
> ...
> for test purposes, I get the following exception:
> 14:45:12,255 ERROR [viewhandler] Error Rendering View[/main.xhtml]
> javax.el.PropertyNotFoundException: Property 'logout' not found on type org.jboss.seam.security.Identity
> at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
> at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
> at javax.el.BeanELResolver.property(BeanELResolver.java:279)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
> at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
> at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
> at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> at com.sun.facelets.el.ELText$ELTextVariable.toString(ELText.java:174)
> at com.sun.facelets.el.ELText$ELTextComposite.toString(ELText.java:115)
> at com.sun.facelets.compiler.CommentInstruction.write(CommentInstruction.java:38)
> at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
> at com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
> at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
> at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
> at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 22 18:50:44 2009
From: jira-events at lists.jboss.org (Pete Muir (JIRA))
Date: Thu, 22 Jan 2009 18:50:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3904) Property
'logout' not found on type Identity when commenting XHTML
In-Reply-To: <4312243.1232459464030.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <4674578.1232668244168.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449368#action_12449368 ]
Pete Muir commented on JBSEAM-3904:
-----------------------------------
If you do this I will have your JIRA account disabled. JIRA is not for support.
> Property 'logout' not found on type Identity when commenting XHTML
> ------------------------------------------------------------------
>
> Key: JBSEAM-3904
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3904
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.1.GA
> Environment: Windows XP
> JBoss AS 5.0.0
> Reporter: Lo??c Lef??vre
>
> If I comment in booking example the file view/template.xhtml:
> ...
>
>
> ...
> for test purposes, I get the following exception:
> 14:45:12,255 ERROR [viewhandler] Error Rendering View[/main.xhtml]
> javax.el.PropertyNotFoundException: Property 'logout' not found on type org.jboss.seam.security.Identity
> at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
> at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
> at javax.el.BeanELResolver.property(BeanELResolver.java:279)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
> at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
> at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
> at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> at com.sun.facelets.el.ELText$ELTextVariable.toString(ELText.java:174)
> at com.sun.facelets.el.ELText$ELTextComposite.toString(ELText.java:115)
> at com.sun.facelets.compiler.CommentInstruction.write(CommentInstruction.java:38)
> at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
> at com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
> at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
> at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
> at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 23 05:38:44 2009
From: jira-events at lists.jboss.org (Marek Novotny (JIRA))
Date: Fri, 23 Jan 2009 05:38:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3570) Update the
WebSphere reference guide chapter to WebSphere 7.0
In-Reply-To: <22882193.1224087201166.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <20147974.1232707124550.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449404#action_12449404 ]
Marek Novotny commented on JBSEAM-3570:
---------------------------------------
When I created previous comment I was not right about the cause :-/, the root cause is Richfaces 3.2.2.SR1 and its implementation org.ajax4jsf.cache.ServletContextInitMap of java.util.AbstractMap. It is in an infinite loop in method size. I have found the related JIRA issue https://jira.jboss.org/jira/browse/RF-4537. So it points us to the upgrade of Richfaces to 3.3.0 version
> Update the WebSphere reference guide chapter to WebSphere 7.0
> -------------------------------------------------------------
>
> Key: JBSEAM-3570
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3570
> Project: Seam
> Issue Type: Task
> Components: Platform interoperability
> Affects Versions: 2.1.0.CR1
> Reporter: Jay Balunas
> Assignee: Marek Novotny
> Fix For: 2.1.2.CR1
>
>
> WebSphere 7.0 has gone GA and now fully supports jee5 with out the various issues before. This needs to be investigated, tested, and the reference guide needs to be updated.
> Search forum, and jira for related issues and notes.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 23 05:52:44 2009
From: jira-events at lists.jboss.org (Daniel Roth (JIRA))
Date: Fri, 23 Jan 2009 05:52:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3910) columns to
process for workbook
generation should be custumizable, as frontend and sheet might differ
In-Reply-To: <7897302.1232664584165.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <25664947.1232707964692.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Roth updated JBSEAM-3910:
--------------------------------
JBoss Forum Reference: http://www.seamframework.org/Community/ExcelGenerationFromDataTable
Assignee: Daniel Roth
> columns to process for workbook generation should be custumizable, as frontend and sheet might differ
> -----------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3910
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3910
> Project: Seam
> Issue Type: Feature Request
> Components: Excel
> Affects Versions: 2.1.1.GA
> Reporter: Rene Felgentr??ger
> Assignee: Daniel Roth
>
> So far, the excel-exporter tries to generate a workbook by copying all columns of the datatable ignoring the rendered attribute.
> Furthermore, it should be possible to ignore "action/details" columns, as they are useless in an excel-sheet
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 23 09:18:44 2009
From: jira-events at lists.jboss.org (Marek Novotny (JIRA))
Date: Fri, 23 Jan 2009 09:18:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3570) Update the
WebSphere reference guide chapter to WebSphere 7.0
In-Reply-To: <22882193.1224087201166.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <21326945.1232720324413.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449450#action_12449450 ]
Marek Novotny commented on JBSEAM-3570:
---------------------------------------
workaround from RF-4537 is not working for me
> Update the WebSphere reference guide chapter to WebSphere 7.0
> -------------------------------------------------------------
>
> Key: JBSEAM-3570
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3570
> Project: Seam
> Issue Type: Task
> Components: Platform interoperability
> Affects Versions: 2.1.0.CR1
> Reporter: Jay Balunas
> Assignee: Marek Novotny
> Fix For: 2.1.2.CR1
>
>
> WebSphere 7.0 has gone GA and now fully supports jee5 with out the various issues before. This needs to be investigated, tested, and the reference guide needs to be updated.
> Search forum, and jira for related issues and notes.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 23 16:02:54 2009
From: jira-events at lists.jboss.org (Adam Montague (JIRA))
Date: Fri, 23 Jan 2009 16:02:54 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3911) zipped ear
files cause seam NullPointerException on deployment
Message-ID: <6944574.1232744574629.JavaMail.jira@cloud.prod.atl2.jboss.com>
zipped ear files cause seam NullPointerException on deployment
--------------------------------------------------------------
Key: JBSEAM-3911
URL: https://jira.jboss.org/jira/browse/JBSEAM-3911
Project: Seam
Issue Type: Bug
Environment: Jboss 5.0.0-GA, jdk 1.6.0_07
Reporter: Adam Montague
A webapp using seam that is deployed as a zipped ear fails to deploy. First you get an exception like this for each war that uses seam:
15:55:08,634 WARN [URLScanner] could not read entries
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.
(ZipFile.java:114)
at java.util.zip.ZipFile.(ZipFile.java:131)
at org.jboss.seam.deployment.URLScanner.handleArchiveByFile(URLScanner.java:111)
at org.jboss.seam.deployment.URLScanner.handle(URLScanner.java:98)
at org.jboss.seam.deployment.URLScanner.scanResources(URLScanner.java:81)
at org.jboss.seam.deployment.StandardDeploymentStrategy.scan(StandardDeploymentStrateg
y.java:67)
at org.jboss.seam.init.Initialization.create(Initialization.java:102)
at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
tDeployment.java:367)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
ent.java:146)
at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
5)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
at $Proxy36.start(Unknown Source)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
ecycleAction.java:42)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
ecycleAction.java:37)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
on(SimpleControllerContextAction.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
trollerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
ollerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
ntext.java:348)
at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
ontext.java:286)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
8)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
ava:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
at org.jboss.system.ServiceController.start(ServiceController.java:460)
at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
AbstractSimpleRealDeployer.java:62)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
ployer.java:50)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
71)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
9)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1178)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1210)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
ntext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
8)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
ava:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
erviceBootstrap.java:304)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
Bootstrap.java:205)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:547)
at java.lang.Thread.run(Thread.java:619)
Then you get the following exception for the first war, causing deployment to fail:
15:16:26,981 ERROR [[/merlin/affiliate]] Exception sending context initialized event to listen
er instance of class org.jboss.seam.servlet.SeamListener
java.lang.NullPointerException
at org.jboss.seam.init.Initialization.installComponents(Initialization.java:958)
at org.jboss.seam.init.Initialization.init(Initialization.java:589)
at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
tDeployment.java:367)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
ent.java:146)
at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
5)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
at $Proxy36.start(Unknown Source)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
ecycleAction.java:42)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
ecycleAction.java:37)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
on(SimpleControllerContextAction.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
trollerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
ollerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
ntext.java:348)
at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
ontext.java:286)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
8)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
ava:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
at org.jboss.system.ServiceController.start(ServiceController.java:460)
at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
AbstractSimpleRealDeployer.java:62)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
ployer.java:50)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
71)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
9)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1178)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
mpl.java:1210)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
ntext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
8)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
ava:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
erviceBootstrap.java:304)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
Bootstrap.java:205)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:547)
at java.lang.Thread.run(Thread.java:619)
If you unzip the ear, then you still get the zipexceptions for each war in the ear, but the final exception does not happen and the deployment succeeds.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 23 16:04:44 2009
From: jira-events at lists.jboss.org (Adam Montague (JIRA))
Date: Fri, 23 Jan 2009 16:04:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3911) zipped ear
files cause seam NullPointerException on deployment
In-Reply-To: <6944574.1232744574629.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <1096912.1232744684207.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adam Montague updated JBSEAM-3911:
----------------------------------
Affects Version/s: 2.0.2.SP1
> zipped ear files cause seam NullPointerException on deployment
> --------------------------------------------------------------
>
> Key: JBSEAM-3911
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3911
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.0.2.SP1
> Environment: Jboss 5.0.0-GA, jdk 1.6.0_07
> Reporter: Adam Montague
>
> A webapp using seam that is deployed as a zipped ear fails to deploy. First you get an exception like this for each war that uses seam:
> 15:55:08,634 WARN [URLScanner] could not read entries
> java.util.zip.ZipException: error in opening zip file
> at java.util.zip.ZipFile.open(Native Method)
> at java.util.zip.ZipFile.(ZipFile.java:114)
> at java.util.zip.ZipFile.(ZipFile.java:131)
> at org.jboss.seam.deployment.URLScanner.handleArchiveByFile(URLScanner.java:111)
> at org.jboss.seam.deployment.URLScanner.handle(URLScanner.java:98)
> at org.jboss.seam.deployment.URLScanner.scanResources(URLScanner.java:81)
> at org.jboss.seam.deployment.StandardDeploymentStrategy.scan(StandardDeploymentStrateg
> y.java:67)
> at org.jboss.seam.init.Initialization.create(Initialization.java:102)
> at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
> tDeployment.java:367)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
> ent.java:146)
> at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
> at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
> at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
> 5)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
> at $Proxy36.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:37)
> at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
> on(SimpleControllerContextAction.java:62)
> at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
> trollerContextAction.java:71)
> at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
> ollerContextActions.java:51)
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
> ontext.java:286)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at org.jboss.system.ServiceController.start(ServiceController.java:460)
> at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
> at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
> AbstractSimpleRealDeployer.java:62)
> at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
> ployer.java:50)
> at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
> 71)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
> 9)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1157)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1178)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1210)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
> )
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
> at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
> )
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
> erviceBootstrap.java:304)
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
> Bootstrap.java:205)
> at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
> at org.jboss.Main.boot(Main.java:209)
> at org.jboss.Main$1.run(Main.java:547)
> at java.lang.Thread.run(Thread.java:619)
> Then you get the following exception for the first war, causing deployment to fail:
> 15:16:26,981 ERROR [[/merlin/affiliate]] Exception sending context initialized event to listen
> er instance of class org.jboss.seam.servlet.SeamListener
> java.lang.NullPointerException
> at org.jboss.seam.init.Initialization.installComponents(Initialization.java:958)
> at org.jboss.seam.init.Initialization.init(Initialization.java:589)
> at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
> tDeployment.java:367)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
> ent.java:146)
> at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
> at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
> at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
> 5)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
> at $Proxy36.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:37)
> at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
> on(SimpleControllerContextAction.java:62)
> at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
> trollerContextAction.java:71)
> at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
> ollerContextActions.java:51)
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
> ontext.java:286)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at org.jboss.system.ServiceController.start(ServiceController.java:460)
> at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
> at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
> AbstractSimpleRealDeployer.java:62)
> at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
> ployer.java:50)
> at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
> 71)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
> 9)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1157)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1178)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1210)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
> )
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
> at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
> )
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
> erviceBootstrap.java:304)
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
> Bootstrap.java:205)
> at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
> at org.jboss.Main.boot(Main.java:209)
> at org.jboss.Main$1.run(Main.java:547)
> at java.lang.Thread.run(Thread.java:619)
> If you unzip the ear, then you still get the zipexceptions for each war in the ear, but the final exception does not happen and the deployment succeeds.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sat Jan 24 07:06:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Sat, 24 Jan 2009 07:06:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Work started: (JBSEAM-3449) Upgrade
to latest RestEasy beta
In-Reply-To: <21376851.1222121060720.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <16474849.1232798804377.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on JBSEAM-3449 started by Jozef Hartinger.
> Upgrade to latest RestEasy beta
> -------------------------------
>
> Key: JBSEAM-3449
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3449
> Project: Seam
> Issue Type: Feature Request
> Components: WS
> Affects Versions: 2.1.0.BETA1
> Reporter: Scott Olcott
> Assignee: Jozef Hartinger
> Fix For: 2.1.2.GA
>
> Attachments: jboss-seam-resteasy-2.1.1.CR2.JBSEAM-3449-patched.jar, resteasyBeta-8.txt
>
>
> The latest beta is beta-8
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sat Jan 24 07:12:44 2009
From: jira-events at lists.jboss.org (manuel kallenbach (JIRA))
Date: Sat, 24 Jan 2009 07:12:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-633) remoting
extension in handling exceptions on client side
In-Reply-To: <23273225.1167826167160.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <32159567.1232799164324.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449587#action_12449587 ]
manuel kallenbach commented on JBSEAM-633:
------------------------------------------
Thanks for implementing this.
However, there is one thing I think that's not working properly.
If you start a batch of remote calls and specify only an exception handler for each but the last call (callback is null for the first calls), the callback of the last call in the batch won't be called.
I hope you could understand that. My english is not the best ;-)
> remoting extension in handling exceptions on client side
> --------------------------------------------------------
>
> Key: JBSEAM-633
> URL: https://jira.jboss.org/jira/browse/JBSEAM-633
> Project: Seam
> Issue Type: Feature Request
> Components: Exception Handling, Remoting
> Affects Versions: 1.1.0.GA
> Reporter: Nico Gau
> Assignee: Shane Bryzak
> Priority: Optional
> Fix For: 2.1.1.CR1
>
>
> Hi all,
> I don't really know what JIRA is by the way, so hopefully nobody is upset by this post. I first mailed Gavin but he told me I should put it in JIRA.
> I currently work on a project which uses Seam Remoting directly and I didn't find a neat way in handling errors on the client side as Exceptions are not propagated to it. Therefore I changed Seam to transmit all exceptions which can be handled in the javascript part via another callback. E.g.:
> Seam.Component.getInstance('userManager').currentUser(function(user) {
> alert("user: " + user);
> },
> function(ex) {
> alert("exception occured: " + ex.getMessage());
> });
> As the exception handler is optional, the change would not brake any client code. If you are interested in the change, you can reach me at heinzbeinz AT googlemail.com
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sun Jan 25 03:09:44 2009
From: jira-events at lists.jboss.org (Carey Foushee (JIRA))
Date: Sun, 25 Jan 2009 03:09:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <28532423.1232870984323.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449602#action_12449602 ]
Carey Foushee commented on JBSEAM-3555:
---------------------------------------
I found a work around in 2.1.1GA to send periodic email async:
Took out the from components.xml then just used a standard java.util.Timer like this:
@In(create=true) AsynchronousMailProcessor asynchronousMailProcessor;
long pollingInterval = 30000L;
@Observer("org.jboss.seam.postInitialization")
public void observe() {
new Timer().schedule(new PollTask(asynchronousMailProcessor), pollingInterval, 2*pollingInterval);
}
private class PollTask extends TimerTask {
AsynchronousMailProcessor asynchronousMailProcessor;
public PollTask(AsynchronousMailProcessor asynchronousMailProcessor){
this.asynchronousMailProcessor = asynchronousMailProcessor;
}
public void run(){
asynchronousMailProcessor.sendMail(0);
}
}
@Name("asynchronousMailProcessor")
public class AsynchronousMailProcessor {
@Asynchronous
public void sendMail(@Duration long interval) {
renderer.render("/email/reminder.xhtml");
}
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sun Jan 25 11:27:44 2009
From: jira-events at lists.jboss.org (Cody Lerum (JIRA))
Date: Sun, 25 Jan 2009 11:27:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <27449129.1232900864839.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449612#action_12449612 ]
Cody Lerum commented on JBSEAM-3555:
------------------------------------
Are there multiple issues here?
I'm running into
"16:08:44,847 ERROR [STDERR] Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory" whether I define it as Async or not.
and others are hitting some kind of Async issue. Should these be split?
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sun Jan 25 14:54:44 2009
From: jira-events at lists.jboss.org (Tony Herstell (JIRA))
Date: Sun, 25 Jan 2009 14:54:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <10321079.1232913284374.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449625#action_12449625 ]
Tony Herstell commented on JBSEAM-3555:
---------------------------------------
http://www.seamframework.org/Community/SeamEmailIn211GAEvenWorse
I have been posting about seammail for about a year.
Lets hope it gets priorotised soon as its a VERY useful feature of Seam and its a real shame its letting the side down.
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sun Jan 25 14:58:54 2009
From: jira-events at lists.jboss.org (Tony Herstell (JIRA))
Date: Sun, 25 Jan 2009 14:58:54 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <9963203.1232913534441.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449627#action_12449627 ]
Tony Herstell commented on JBSEAM-3555:
---------------------------------------
There are multiple problems:
1. Seam Mail doesnt work in Asynch mode as per the manual.
2. Seam Mail crashes when its a long list of messages and the crash is "hidden" in render so you cant actually do much about it.
3. Seam Mail when rendering seems to re-use objects from a previous "loop" iteration (in the case above it was Entity Image)
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Sun Jan 25 17:06:44 2009
From: jira-events at lists.jboss.org (Cody Lerum (JIRA))
Date: Sun, 25 Jan 2009 17:06:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <2100254.1232921204428.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449630#action_12449630 ]
Cody Lerum commented on JBSEAM-3555:
------------------------------------
Which of those three is causing this?
Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 03:08:44 2009
From: jira-events at lists.jboss.org (Jarek Gilewski (JIRA))
Date: Mon, 26 Jan 2009 03:08:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3912) s:link and
s:button action problem with ui:include
Message-ID: <21506086.1232957324249.JavaMail.jira@cloud.prod.atl2.jboss.com>
s:link and s:button action problem with ui:include
--------------------------------------------------
Key: JBSEAM-3912
URL: https://jira.jboss.org/jira/browse/JBSEAM-3912
Project: Seam
Issue Type: Bug
Components: JSF Integration
Affects Versions: 2.1.1.GA
Reporter: Jarek Gilewski
Priority: Blocker
Hi,
I have something like this in my xhtml page:
In remove.xhtml I have:
...
...
The link from s:link looks like:
http://localhost:8080/myapp/ComponentView.seam?componentId=1018&actionMethod=ComponentView.xhtml%3AentityHome.remove&cid=16
and from h:commandLink
http://localhost:8080/myapp/ComponentView.seam?componentId=1018&actionOutcome=componentHome.remove&cid=14#
In the s:link there is entityHome.remove instead of componentHome.remove and the link does not work. If i change the link manually it is ok.
h:commandLink works ok.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 05:29:44 2009
From: jira-events at lists.jboss.org (Juan Miguel Bernal Gonzalez (JIRA))
Date: Mon, 26 Jan 2009 05:29:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3555)
SeamMailAgain
In-Reply-To: <3978595.1223977760796.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <21137175.1232965784360.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449657#action_12449657 ]
Juan Miguel Bernal Gonzalez commented on JBSEAM-3555:
-----------------------------------------------------
I?ve an example with en EJB that it works in Seam 2.0.3.CR1 but it doesn?t work in Seam 2.1.1.GA. If I convert the EJB to POJO, this example work well in Seam 2.1.1.GA.
> SeamMailAgain
> -------------
>
> Key: JBSEAM-3555
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.0.CR1
> Environment: JBoss AS 4.2.1.GA
> JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
> Reporter: Markus Heidt
> Assignee: Pete Muir
> Fix For: 2.1.2.CR1
>
> Attachments: RendererFacesContextFactory.java, server.log
>
>
> Simple Mailing via Renderer doesn't work.
> 'Seam-gen'erated a new project and added a new action 'sendMail'
> Added the line to the action code:
> Renderer.instance().render("/simple.xhtml");
> simple.xhtml is a modified version of the seam example (without #{person})
> Error after executing the action:
> 2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
> ...
> Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 07:23:45 2009
From: jira-events at lists.jboss.org (Pete Muir (JIRA))
Date: Mon, 26 Jan 2009 07:23:45 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3911) zipped ear
files cause seam NullPointerException on deployment
In-Reply-To: <6944574.1232744574629.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <7449360.1232972625577.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449673#action_12449673 ]
Pete Muir commented on JBSEAM-3911:
-----------------------------------
Never seen this, you'll have to provide a method to reproduce.
> zipped ear files cause seam NullPointerException on deployment
> --------------------------------------------------------------
>
> Key: JBSEAM-3911
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3911
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.0.2.SP1
> Environment: Jboss 5.0.0-GA, jdk 1.6.0_07
> Reporter: Adam Montague
>
> A webapp using seam that is deployed as a zipped ear fails to deploy. First you get an exception like this for each war that uses seam:
> 15:55:08,634 WARN [URLScanner] could not read entries
> java.util.zip.ZipException: error in opening zip file
> at java.util.zip.ZipFile.open(Native Method)
> at java.util.zip.ZipFile.(ZipFile.java:114)
> at java.util.zip.ZipFile.(ZipFile.java:131)
> at org.jboss.seam.deployment.URLScanner.handleArchiveByFile(URLScanner.java:111)
> at org.jboss.seam.deployment.URLScanner.handle(URLScanner.java:98)
> at org.jboss.seam.deployment.URLScanner.scanResources(URLScanner.java:81)
> at org.jboss.seam.deployment.StandardDeploymentStrategy.scan(StandardDeploymentStrateg
> y.java:67)
> at org.jboss.seam.init.Initialization.create(Initialization.java:102)
> at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
> tDeployment.java:367)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
> ent.java:146)
> at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
> at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
> at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
> 5)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
> at $Proxy36.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:37)
> at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
> on(SimpleControllerContextAction.java:62)
> at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
> trollerContextAction.java:71)
> at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
> ollerContextActions.java:51)
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
> ontext.java:286)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at org.jboss.system.ServiceController.start(ServiceController.java:460)
> at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
> at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
> AbstractSimpleRealDeployer.java:62)
> at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
> ployer.java:50)
> at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
> 71)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
> 9)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1157)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1178)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1210)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
> )
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
> at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
> )
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
> erviceBootstrap.java:304)
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
> Bootstrap.java:205)
> at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
> at org.jboss.Main.boot(Main.java:209)
> at org.jboss.Main$1.run(Main.java:547)
> at java.lang.Thread.run(Thread.java:619)
> Then you get the following exception for the first war, causing deployment to fail:
> 15:16:26,981 ERROR [[/merlin/affiliate]] Exception sending context initialized event to listen
> er instance of class org.jboss.seam.servlet.SeamListener
> java.lang.NullPointerException
> at org.jboss.seam.init.Initialization.installComponents(Initialization.java:958)
> at org.jboss.seam.init.Initialization.init(Initialization.java:589)
> at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(Tomca
> tDeployment.java:367)
> at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeploym
> ent.java:146)
> at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
> at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
> at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:2
> 5)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
> at $Proxy36.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLif
> ecycleAction.java:37)
> at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallActi
> on(SimpleControllerContextAction.java:62)
> at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessCon
> trollerContextAction.java:71)
> at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractContr
> ollerContextActions.java:51)
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerC
> ontext.java:286)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at org.jboss.system.ServiceController.start(ServiceController.java:460)
> at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
> at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
> at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(
> AbstractSimpleRealDeployer.java:62)
> at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDe
> ployer.java:50)
> at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:1
> 71)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:143
> 9)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1157)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1178)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersI
> mpl.java:1210)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098
> )
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerCo
> ntext.java:348)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:159
> 8)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.j
> ava:934)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:1062)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.
> java:984)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
> at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545
> )
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileS
> erviceBootstrap.java:304)
> at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileService
> Bootstrap.java:205)
> at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
> at org.jboss.Main.boot(Main.java:209)
> at org.jboss.Main$1.run(Main.java:547)
> at java.lang.Thread.run(Thread.java:619)
> If you unzip the ear, then you still get the zipexceptions for each war in the ear, but the final exception does not happen and the deployment succeeds.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 07:34:44 2009
From: jira-events at lists.jboss.org (Pete Muir (JIRA))
Date: Mon, 26 Jan 2009 07:34:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-3912) s:link and
s:button action problem with ui:include
In-Reply-To: <21506086.1232957324249.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <20244500.1232973284597.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pete Muir closed JBSEAM-3912.
-----------------------------
Resolution: Duplicate Issue
Please don't set the priority.
> s:link and s:button action problem with ui:include
> --------------------------------------------------
>
> Key: JBSEAM-3912
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3912
> Project: Seam
> Issue Type: Bug
> Components: JSF Integration
> Affects Versions: 2.1.1.GA
> Reporter: Jarek Gilewski
> Priority: Blocker
>
> Hi,
> I have something like this in my xhtml page:
>
>
>
> In remove.xhtml I have:
> ...
>
>
>
> ...
> The link from s:link looks like:
> http://localhost:8080/myapp/ComponentView.seam?componentId=1018&actionMethod=ComponentView.xhtml%3AentityHome.remove&cid=16
> and from h:commandLink
> http://localhost:8080/myapp/ComponentView.seam?componentId=1018&actionOutcome=componentHome.remove&cid=14#
> In the s:link there is entityHome.remove instead of componentHome.remove and the link does not work. If i change the link manually it is ok.
> h:commandLink works ok.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 11:16:44 2009
From: jira-events at lists.jboss.org (Julien Kronegg (JIRA))
Date: Mon, 26 Jan 2009 11:16:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3913) Lower web
site performance once logged in at seamframework.org
Message-ID: <16656670.1232986604972.JavaMail.jira@cloud.prod.atl2.jboss.com>
Lower web site performance once logged in at seamframework.org
--------------------------------------------------------------
Key: JBSEAM-3913
URL: https://jira.jboss.org/jira/browse/JBSEAM-3913
Project: Seam
Issue Type: Bug
Components: WS
Environment: MSIE 6.0 and Firefox 3.0.5
Reporter: Julien Kronegg
Priority: Minor
The Seam web site performance is much lower once logged in (i.e. the pages take much longer to load).
For example, on 2009.01.26, the page http://seamframework.org/Community/Forums loads in:
- when not logged in: 2 seconds
- when logged in: 9 seconds
The timings are reproductible when reloading the pages.
Since the forum is implemented using Seam technology, this is not a good advertizing. ;-)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 11:37:44 2009
From: jira-events at lists.jboss.org (Pete Muir (JIRA))
Date: Mon, 26 Jan 2009 11:37:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3913) Lower web
site performance once logged in at seamframework.org
In-Reply-To: <16656670.1232986604972.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <28527321.1232987864213.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pete Muir updated JBSEAM-3913:
------------------------------
Component/s: Wiki
(was: WS)
> Lower web site performance once logged in at seamframework.org
> --------------------------------------------------------------
>
> Key: JBSEAM-3913
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3913
> Project: Seam
> Issue Type: Bug
> Components: Wiki
> Environment: MSIE 6.0 and Firefox 3.0.5
> Reporter: Julien Kronegg
> Priority: Minor
>
> The Seam web site performance is much lower once logged in (i.e. the pages take much longer to load).
> For example, on 2009.01.26, the page http://seamframework.org/Community/Forums loads in:
> - when not logged in: 2 seconds
> - when logged in: 9 seconds
> The timings are reproductible when reloading the pages.
> Since the forum is implemented using Seam technology, this is not a good advertizing. ;-)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Mon Jan 26 18:05:44 2009
From: jira-events at lists.jboss.org (Clint Popetz (JIRA))
Date: Mon, 26 Jan 2009 18:05:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3914) Hot
deploying doesn't pick up changes in non-@Named classes
Message-ID: <31799197.1233011144160.JavaMail.jira@cloud.prod.atl2.jboss.com>
Hot deploying doesn't pick up changes in non- at Named classes
-----------------------------------------------------------
Key: JBSEAM-3914
URL: https://jira.jboss.org/jira/browse/JBSEAM-3914
Project: Seam
Issue Type: Bug
Components: Wicket
Affects Versions: 2.1.1.GA
Reporter: Clint Popetz
Assignee: Clint Popetz
The default deployment scanner don't pay attention to changes in hot-deployed wicket classes, because they aren't @Named.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 03:06:44 2009
From: jira-events at lists.jboss.org (Viggo Navarsete (JIRA))
Date: Tue, 27 Jan 2009 03:06:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3915) RESTEasy GET
request: java.lang.RuntimeException: Bad arguments passed to public
java.lang.String method
Message-ID: <21596809.1233043604153.JavaMail.jira@cloud.prod.atl2.jboss.com>
RESTEasy GET request: java.lang.RuntimeException: Bad arguments passed to public java.lang.String method
---------------------------------------------------------------------------------------------------------
Key: JBSEAM-3915
URL: https://jira.jboss.org/jira/browse/JBSEAM-3915
Project: Seam
Issue Type: Bug
Environment: JDK 1.6
Jboss 5.0.0.GA for JDK 1.6
Seam 2.1.1.GA
Reporter: Viggo Navarsete
Deploying the attached project and going to the following url: http://localhost:8080/app-cci-seam/seam/resource/rest/gqiResource/getShelfLife/arg1/arg2
results in the following stacktrace:
09:00:03,046 ERROR [STDERR] java.lang.RuntimeException: Bad arguments passed to public java.lang.String com.tracetracker.cci.session.GqiResourceBean.getShelfLife(java.lang.String,java.lang.String) ( arg1, arg2
09:00:03,047 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:133)
09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:162)
09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:134)
09:00:03,047 ERROR [STDERR] at org.resteasy.Dispatcher.invoke(Dispatcher.java:161)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:127)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:71)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
09:00:03,047 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,047 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
09:00:03,048 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
09:00:03,049 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
09:00:03,049 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
09:00:03,049 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
09:00:03,049 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
09:00:03,049 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
09:00:03,049 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
09:00:03,049 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
09:00:03,049 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
09:00:03,049 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:72)
09:00:03,049 ERROR [STDERR] ... 50 more
The interface for the RESTEasy webservice is com.tracetracker.cci.GqiResource
The implementation is com.tracetracker.cci.GqiResourceBean
I have tried to change the parameter types resulting in the same error. It looks the argumentss are not handlet corectly for GET requests.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 03:23:44 2009
From: jira-events at lists.jboss.org (Viggo Navarsete (JIRA))
Date: Tue, 27 Jan 2009 03:23:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3915) RESTEasy
GET request:
java.lang.RuntimeException: Bad arguments passed to public
java.lang.String method
In-Reply-To: <21596809.1233043604153.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <21517118.1233044624161.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449820#action_12449820 ]
Viggo Navarsete commented on JBSEAM-3915:
-----------------------------------------
There seams to be a problem attaching our code to the issue (to big). I will paste the interface and implementation in. All implementation has been done following the seam reference guide
Interface:
package com.tracetracker.cci.session;
import javax.ejb.Local;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.ProduceMime;
@Local
public interface GqiResource {
// seam-gen method
public void gqiResource();
@GET
@Path("/getShelfLife/{1}/{2}")
@ProduceMime("text/plain")
public String getShelfLife( @PathParam("1") String station, @PathParam("2") String date );
}
implementation:
package com.tracetracker.cci.session;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.ProduceMime;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.international.StatusMessages;
import org.jboss.seam.log.Log;
@Stateless
@Name("gqiResource")
@Path("/gqiResource")
public class GqiResourceBean implements GqiResource {
@Logger
private Log log;
@In
StatusMessages statusMessages;
public void gqiResource() {
// implement your business logic here
log.info("gqiResource.gqiResource() action called");
statusMessages.add("gqiResource");
}
@GET
@Path("/getShelfLife/{1}/{2}")
@ProduceMime("text/plain")
public String getShelfLife( @PathParam("1") String station, @PathParam("2") String date ) {
return "This is a test, 1: " + station + " 2 " + date;
}
}
> RESTEasy GET request: java.lang.RuntimeException: Bad arguments passed to public java.lang.String method
> ---------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3915
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3915
> Project: Seam
> Issue Type: Bug
> Environment: JDK 1.6
> Jboss 5.0.0.GA for JDK 1.6
> Seam 2.1.1.GA
> Reporter: Viggo Navarsete
>
> Deploying the attached project and going to the following url: http://localhost:8080/app-cci-seam/seam/resource/rest/gqiResource/getShelfLife/arg1/arg2
> results in the following stacktrace:
> 09:00:03,046 ERROR [STDERR] java.lang.RuntimeException: Bad arguments passed to public java.lang.String com.tracetracker.cci.session.GqiResourceBean.getShelfLife(java.lang.String,java.lang.String) ( arg1, arg2
> 09:00:03,047 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:133)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:162)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:134)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.Dispatcher.invoke(Dispatcher.java:161)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:127)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:71)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
> 09:00:03,047 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 09:00:03,049 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> 09:00:03,049 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 09:00:03,049 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
> 09:00:03,049 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 09:00:03,049 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
> 09:00:03,049 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:72)
> 09:00:03,049 ERROR [STDERR] ... 50 more
> The interface for the RESTEasy webservice is com.tracetracker.cci.GqiResource
> The implementation is com.tracetracker.cci.GqiResourceBean
> I have tried to change the parameter types resulting in the same error. It looks the argumentss are not handlet corectly for GET requests.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 04:14:44 2009
From: jira-events at lists.jboss.org (Viggo Navarsete (JIRA))
Date: Tue, 27 Jan 2009 04:14:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3915) RESTEasy GET
request: java.lang.RuntimeException: Bad arguments passed to public
java.lang.String method
In-Reply-To: <21596809.1233043604153.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <19633939.1233047684175.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Viggo Navarsete updated JBSEAM-3915:
------------------------------------
Affects Version/s: 2.1.1.GA
> RESTEasy GET request: java.lang.RuntimeException: Bad arguments passed to public java.lang.String method
> ---------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3915
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3915
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.1.GA
> Environment: JDK 1.6
> Jboss 5.0.0.GA for JDK 1.6
> Seam 2.1.1.GA
> Reporter: Viggo Navarsete
>
> Deploying the attached project and going to the following url: http://localhost:8080/app-cci-seam/seam/resource/rest/gqiResource/getShelfLife/arg1/arg2
> results in the following stacktrace:
> 09:00:03,046 ERROR [STDERR] java.lang.RuntimeException: Bad arguments passed to public java.lang.String com.tracetracker.cci.session.GqiResourceBean.getShelfLife(java.lang.String,java.lang.String) ( arg1, arg2
> 09:00:03,047 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:133)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:162)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:134)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.Dispatcher.invoke(Dispatcher.java:161)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:127)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:71)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
> 09:00:03,047 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 09:00:03,049 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> 09:00:03,049 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 09:00:03,049 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
> 09:00:03,049 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 09:00:03,049 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
> 09:00:03,049 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:72)
> 09:00:03,049 ERROR [STDERR] ... 50 more
> The interface for the RESTEasy webservice is com.tracetracker.cci.GqiResource
> The implementation is com.tracetracker.cci.GqiResourceBean
> I have tried to change the parameter types resulting in the same error. It looks the argumentss are not handlet corectly for GET requests.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 06:30:44 2009
From: jira-events at lists.jboss.org (Damian Harvey (JIRA))
Date: Tue, 27 Jan 2009 06:30:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2658)
s:defaultAction only works 1 submit
In-Reply-To: <16876596.1203504645567.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <14480501.1233055844208.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-2658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449832#action_12449832 ]
Damian Harvey commented on JBSEAM-2658:
---------------------------------------
I have this problem only on Firefox and only when you reRender (via ajax4jsf) the button/link that has the defaultAction. And then only when you reRender the form as well as the elements within it.
Safari = OK
Chrome = OK
IE7 = OK
Firefox 3.0.5 (Mac) = ERROR
Firefox 3.0.1 (Win Vista) = ERROR
Here's a small example (the page scoped backing Bean - testBean - just outputs to system out) :
Note that if you move the testDiv inside the form then it works fine.
> s:defaultAction only works 1 submit
> -----------------------------------
>
> Key: JBSEAM-2658
> URL: https://jira.jboss.org/jira/browse/JBSEAM-2658
> Project: Seam
> Issue Type: Bug
> Components: JSF Controls
> Affects Versions: 2.0.1.GA
> Environment: JBoss 4.2.2, RichFaces 3.1.4, Firefox 2.0.0.12, Windows XP
> Reporter: Susanne Jarl
> Assignee: Pete Muir
> Fix For: 2.0.2.CR1, 2.1.0.BETA1
>
>
> I use the s:defaultAction and it works the first time i hit enter, but if the inputtextfield is not validated and/or I get an error message, and then hit enter in the inputtextfield again it does not work. But if I click the submitbutton instead the second time it works. So there is a difference between clicking the button and hit enter the second time.
> This is my code:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> I have this form in a RichFaces modal panel.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 06:39:44 2009
From: jira-events at lists.jboss.org (Damian Harvey (JIRA))
Date: Tue, 27 Jan 2009 06:39:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2658)
s:defaultAction only works 1 submit
In-Reply-To: <16876596.1203504645567.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <20934576.1233056384266.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-2658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449834#action_12449834 ]
Damian Harvey commented on JBSEAM-2658:
---------------------------------------
the above example will result it every second action working.
> s:defaultAction only works 1 submit
> -----------------------------------
>
> Key: JBSEAM-2658
> URL: https://jira.jboss.org/jira/browse/JBSEAM-2658
> Project: Seam
> Issue Type: Bug
> Components: JSF Controls
> Affects Versions: 2.0.1.GA
> Environment: JBoss 4.2.2, RichFaces 3.1.4, Firefox 2.0.0.12, Windows XP
> Reporter: Susanne Jarl
> Assignee: Pete Muir
> Fix For: 2.0.2.CR1, 2.1.0.BETA1
>
>
> I use the s:defaultAction and it works the first time i hit enter, but if the inputtextfield is not validated and/or I get an error message, and then hit enter in the inputtextfield again it does not work. But if I click the submitbutton instead the second time it works. So there is a difference between clicking the button and hit enter the second time.
> This is my code:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> I have this form in a RichFaces modal panel.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 06:39:44 2009
From: jira-events at lists.jboss.org (Damian Harvey (JIRA))
Date: Tue, 27 Jan 2009 06:39:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2658)
s:defaultAction only works 1 submit
In-Reply-To: <16876596.1203504645567.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <29933393.1233056384433.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-2658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449835#action_12449835 ]
Damian Harvey commented on JBSEAM-2658:
---------------------------------------
and the workaround is to move the div #testDiv inside the form - ie. don't reRender forms.
> s:defaultAction only works 1 submit
> -----------------------------------
>
> Key: JBSEAM-2658
> URL: https://jira.jboss.org/jira/browse/JBSEAM-2658
> Project: Seam
> Issue Type: Bug
> Components: JSF Controls
> Affects Versions: 2.0.1.GA
> Environment: JBoss 4.2.2, RichFaces 3.1.4, Firefox 2.0.0.12, Windows XP
> Reporter: Susanne Jarl
> Assignee: Pete Muir
> Fix For: 2.0.2.CR1, 2.1.0.BETA1
>
>
> I use the s:defaultAction and it works the first time i hit enter, but if the inputtextfield is not validated and/or I get an error message, and then hit enter in the inputtextfield again it does not work. But if I click the submitbutton instead the second time it works. So there is a difference between clicking the button and hit enter the second time.
> This is my code:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> I have this form in a RichFaces modal panel.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 13:41:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Tue, 27 Jan 2009 13:41:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Assigned: (JBSEAM-3915) RESTEasy
GET request:
java.lang.RuntimeException: Bad arguments passed to public
java.lang.String method
In-Reply-To: <21596809.1233043604153.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <9668556.1233081704377.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jozef Hartinger reassigned JBSEAM-3915:
---------------------------------------
Assignee: Jozef Hartinger
> RESTEasy GET request: java.lang.RuntimeException: Bad arguments passed to public java.lang.String method
> ---------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3915
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3915
> Project: Seam
> Issue Type: Bug
> Components: WS
> Affects Versions: 2.1.1.GA
> Environment: JDK 1.6
> Jboss 5.0.0.GA for JDK 1.6
> Seam 2.1.1.GA
> Reporter: Viggo Navarsete
> Assignee: Jozef Hartinger
>
> Deploying the attached project and going to the following url: http://localhost:8080/app-cci-seam/seam/resource/rest/gqiResource/getShelfLife/arg1/arg2
> results in the following stacktrace:
> 09:00:03,046 ERROR [STDERR] java.lang.RuntimeException: Bad arguments passed to public java.lang.String com.tracetracker.cci.session.GqiResourceBean.getShelfLife(java.lang.String,java.lang.String) ( arg1, arg2
> 09:00:03,047 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:133)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:162)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:134)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.Dispatcher.invoke(Dispatcher.java:161)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:127)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:71)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
> 09:00:03,047 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 09:00:03,049 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> 09:00:03,049 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 09:00:03,049 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
> 09:00:03,049 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 09:00:03,049 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
> 09:00:03,049 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:72)
> 09:00:03,049 ERROR [STDERR] ... 50 more
> The interface for the RESTEasy webservice is com.tracetracker.cci.GqiResource
> The implementation is com.tracetracker.cci.GqiResourceBean
> I have tried to change the parameter types resulting in the same error. It looks the argumentss are not handlet corectly for GET requests.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 13:41:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Tue, 27 Jan 2009 13:41:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3915) RESTEasy GET
request: java.lang.RuntimeException: Bad arguments passed to public
java.lang.String method
In-Reply-To: <21596809.1233043604153.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <31117031.1233081704592.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jozef Hartinger updated JBSEAM-3915:
------------------------------------
Component/s: WS
Affects: [Release Notes]
> RESTEasy GET request: java.lang.RuntimeException: Bad arguments passed to public java.lang.String method
> ---------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3915
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3915
> Project: Seam
> Issue Type: Bug
> Components: WS
> Affects Versions: 2.1.1.GA
> Environment: JDK 1.6
> Jboss 5.0.0.GA for JDK 1.6
> Seam 2.1.1.GA
> Reporter: Viggo Navarsete
> Assignee: Jozef Hartinger
>
> Deploying the attached project and going to the following url: http://localhost:8080/app-cci-seam/seam/resource/rest/gqiResource/getShelfLife/arg1/arg2
> results in the following stacktrace:
> 09:00:03,046 ERROR [STDERR] java.lang.RuntimeException: Bad arguments passed to public java.lang.String com.tracetracker.cci.session.GqiResourceBean.getShelfLife(java.lang.String,java.lang.String) ( arg1, arg2
> 09:00:03,047 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:133)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:162)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.ResourceMethod.invoke(ResourceMethod.java:134)
> 09:00:03,047 ERROR [STDERR] at org.resteasy.Dispatcher.invoke(Dispatcher.java:161)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:127)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:71)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
> 09:00:03,047 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 09:00:03,047 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> 09:00:03,047 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,047 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
> 09:00:03,048 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
> 09:00:03,048 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> 09:00:03,048 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 09:00:03,048 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 09:00:03,049 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 09:00:03,049 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> 09:00:03,049 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> 09:00:03,049 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 09:00:03,049 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
> 09:00:03,049 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 09:00:03,049 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 09:00:03,049 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
> 09:00:03,049 ERROR [STDERR] at org.resteasy.MethodInjectorImpl.invoke(MethodInjectorImpl.java:72)
> 09:00:03,049 ERROR [STDERR] ... 50 more
> The interface for the RESTEasy webservice is com.tracetracker.cci.GqiResource
> The implementation is com.tracetracker.cci.GqiResourceBean
> I have tried to change the parameter types resulting in the same error. It looks the argumentss are not handlet corectly for GET requests.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 17:40:44 2009
From: jira-events at lists.jboss.org (Ian Springer (JIRA))
Date: Tue, 27 Jan 2009 17:40:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3916)
SeamELResolver.resolveInMap()
will resolve a property "size" to ((Map)base).size() even if the Map
contains a key named "base" - instead, it should return null and allow
javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
Message-ID: <19503838.1233096044156.JavaMail.jira@cloud.prod.atl2.jboss.com>
SeamELResolver.resolveInMap() will resolve a property "size" to ((Map)base).size() even if the Map contains a key named "base" - instead, it should return null and allow javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: JBSEAM-3916
URL: https://jira.jboss.org/jira/browse/JBSEAM-3916
Project: Seam
Issue Type: Bug
Components: EL
Affects Versions: 2.1.0.SP1
Reporter: Ian Springer
Priority: Critical
I have an expression:
#{MyBean.someMap['size']}
In my non-Seam JSF app, this expression was resolving to MyBean.getSomeMap().get("size"). However, when I integrated Seam into my app, the expression started instead resolving to MyBean.getSomeMap().size(), which broke my app. This is occurring because SeamELResolver is ahead of javax.el.MapELResolver in the CompositeELResolver resolver list, and its resolveInMap() function ensures a property named "size" resolves to ((Map)base).size() This makes it impossible for me to obtain the value of the element with key "size" from my Map via EL.
To solve this, I suggest changing SeamELResolver.resolveInMap() to the following:
private Object resolveInMap(ELContext context, Object base, Object property)
{
if ( !( (Map) base ).containsKey("size") && "size".equals(property) )
{
context.setPropertyResolved(true);
return ( (Map) base ).size();
}
else if ( !( (Map) base ).containsKey("values") && "values".equals(property) )
{
context.setPropertyResolved(true);
return ( (Map) base ).values();
}
else if ( !( (Map) base ).containsKey("keySet") && "keySet".equals(property) )
{
context.setPropertyResolved(true);
return ( (Map) base ).keySet();
}
else if ( !( (Map) base ).containsKey("entrySet") && "entrySet".equals(property) )
{
context.setPropertyResolved(true);
return ( (Map) base ).entrySet();
}
else
{
return null;
}
}
The only disadvantage of this is that if you actually are trying to get at map.size(), there will be no way to do so if the Map happens to contain a key named "size". However, in such a case, #{MyBean.someMap.keySet.size} or #{MyBean.someMap.values.size} could instead be used to obtain the Map's size.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 17:46:44 2009
From: jira-events at lists.jboss.org (Ian Springer (JIRA))
Date: Tue, 27 Jan 2009 17:46:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3916)
SeamELResolver.resolveInMap()
will resolve a property "size" to ((Map)base).size() even if the Map
contains a key named "size" - instead, it should return null and allow
javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
In-Reply-To: <19503838.1233096044156.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <4565618.1233096404259.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ian Springer updated JBSEAM-3916:
---------------------------------
Summary: SeamELResolver.resolveInMap() will resolve a property "size" to ((Map)base).size() even if the Map contains a key named "size" - instead, it should return null and allow javax.el.MapELResolver to resolve the property to ((Map)base).get("size") (was: SeamELResolver.resolveInMap() will resolve a property "size" to ((Map)base).size() even if the Map contains a key named "base" - instead, it should return null and allow javax.el.MapELResolver to resolve the property to ((Map)base).get("size"))
> SeamELResolver.resolveInMap() will resolve a property "size" to ((Map)base).size() even if the Map contains a key named "size" - instead, it should return null and allow javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3916
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3916
> Project: Seam
> Issue Type: Bug
> Components: EL
> Affects Versions: 2.1.0.SP1
> Reporter: Ian Springer
> Priority: Critical
>
> I have an expression:
> #{MyBean.someMap['size']}
> In my non-Seam JSF app, this expression was resolving to MyBean.getSomeMap().get("size"). However, when I integrated Seam into my app, the expression started instead resolving to MyBean.getSomeMap().size(), which broke my app. This is occurring because SeamELResolver is ahead of javax.el.MapELResolver in the CompositeELResolver resolver list, and its resolveInMap() function ensures a property named "size" resolves to ((Map)base).size() This makes it impossible for me to obtain the value of the element with key "size" from my Map via EL.
> To solve this, I suggest changing SeamELResolver.resolveInMap() to the following:
> private Object resolveInMap(ELContext context, Object base, Object property)
> {
> if ( !( (Map) base ).containsKey("size") && "size".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).size();
> }
> else if ( !( (Map) base ).containsKey("values") && "values".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).values();
> }
> else if ( !( (Map) base ).containsKey("keySet") && "keySet".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).keySet();
> }
> else if ( !( (Map) base ).containsKey("entrySet") && "entrySet".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).entrySet();
> }
> else
> {
> return null;
> }
> }
> The only disadvantage of this is that if you actually are trying to get at map.size(), there will be no way to do so if the Map happens to contain a key named "size". However, in such a case, #{MyBean.someMap.keySet.size} or #{MyBean.someMap.values.size} could instead be used to obtain the Map's size.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Tue Jan 27 18:03:44 2009
From: jira-events at lists.jboss.org (Ian Springer (JIRA))
Date: Tue, 27 Jan 2009 18:03:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3916)
SeamELResolver.resolveInMap()
will resolve a property "size" to ((Map)base).size() even if the Map
contains a key named "size" - instead, it should return null and allow
javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
In-Reply-To: <19503838.1233096044156.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <5841600.1233097424168.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12449950#action_12449950 ]
Ian Springer commented on JBSEAM-3916:
--------------------------------------
Note, this bug is an issue for RHQ/Jopr/JON (see http://jira.rhq-project.org/browse/RHQ-1415).
> SeamELResolver.resolveInMap() will resolve a property "size" to ((Map)base).size() even if the Map contains a key named "size" - instead, it should return null and allow javax.el.MapELResolver to resolve the property to ((Map)base).get("size")
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3916
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3916
> Project: Seam
> Issue Type: Bug
> Components: EL
> Affects Versions: 2.1.0.SP1
> Reporter: Ian Springer
> Priority: Critical
>
> I have an expression:
> #{MyBean.someMap['size']}
> In my non-Seam JSF app, this expression was resolving to MyBean.getSomeMap().get("size"). However, when I integrated Seam into my app, the expression started instead resolving to MyBean.getSomeMap().size(), which broke my app. This is occurring because SeamELResolver is ahead of javax.el.MapELResolver in the CompositeELResolver resolver list, and its resolveInMap() function ensures a property named "size" resolves to ((Map)base).size() This makes it impossible for me to obtain the value of the element with key "size" from my Map via EL.
> To solve this, I suggest changing SeamELResolver.resolveInMap() to the following:
> private Object resolveInMap(ELContext context, Object base, Object property)
> {
> if ( !( (Map) base ).containsKey("size") && "size".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).size();
> }
> else if ( !( (Map) base ).containsKey("values") && "values".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).values();
> }
> else if ( !( (Map) base ).containsKey("keySet") && "keySet".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).keySet();
> }
> else if ( !( (Map) base ).containsKey("entrySet") && "entrySet".equals(property) )
> {
> context.setPropertyResolved(true);
> return ( (Map) base ).entrySet();
> }
> else
> {
> return null;
> }
> }
> The only disadvantage of this is that if you actually are trying to get at map.size(), there will be no way to do so if the Map happens to contain a key named "size". However, in such a case, #{MyBean.someMap.keySet.size} or #{MyBean.someMap.values.size} could instead be used to obtain the Map's size.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Wed Jan 28 09:02:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Wed, 28 Jan 2009 09:02:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Work started: (JBSEAM-3805)
Automate wickets
buildtime/runtime instrumentation builds in functional tests
In-Reply-To: <30765757.1228490316618.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <17473379.1233151364254.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on JBSEAM-3805 started by Jozef Hartinger.
> Automate wickets buildtime/runtime instrumentation builds in functional tests
> -----------------------------------------------------------------------------
>
> Key: JBSEAM-3805
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3805
> Project: Seam
> Issue Type: Task
> Components: Test Harness
> Affects Versions: 2.1.1.CR2
> Reporter: Jay Balunas
> Assignee: Jozef Hartinger
> Fix For: 2.1.2.CR1
>
>
> The wicket example now have two ways that it can be instrumented and both need to be tested using functional test suite. See wicket's readme and build.xml for instructions.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Wed Jan 28 09:07:44 2009
From: jira-events at lists.jboss.org (Daniel Wiell (JIRA))
Date: Wed, 28 Jan 2009 09:07:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3917) NPE in
Image.getImage() for images with unsupported content type
Message-ID: <23910203.1233151664277.JavaMail.jira@cloud.prod.atl2.jboss.com>
NPE in Image.getImage() for images with unsupported content type
----------------------------------------------------------------
Key: JBSEAM-3917
URL: https://jira.jboss.org/jira/browse/JBSEAM-3917
Project: Seam
Issue Type: Bug
Components: Core
Affects Versions: 2.1.1.GA
Reporter: Daniel Wiell
Image.readImage(InputStream) sets contentType to null if the type of the image is unknown (say a bmp).
When invoking Image.getImage(), a NPE is thrown:
java.lang.NullPointerException
at org.jboss.seam.ui.graphicImage.Image.getImage(Image.java:154)
ImageIO.write(bufferedImage, getContentType().getImageFormatName(), outputStream);
getContentType() returns null.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Wed Jan 28 12:07:48 2009
From: jira-events at lists.jboss.org (Julien Kronegg (JIRA))
Date: Wed, 28 Jan 2009 12:07:48 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3278) seam-gen
generate-ui problem - entity in a different package
In-Reply-To: <25946222.1219070458895.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <9126273.1233162468966.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450079#action_12450079 ]
Julien Kronegg commented on JBSEAM-3278:
----------------------------------------
Occurs at least under Seam 2.0.0.GA when the package name is specified in the seam-gen.reveng.xml file:
There is a "patch" (better than proposed in the associated forum thread, I think):
In the {SEAMHOME}/seam-gen/src/EntityHome.java.ftl, replace the following strings:
1) line 74: ${parentPojo.shortName} ${property.name}=${parentHomeName}.getDefinedInstance();
must be replaced by:
<#if parentPojo.packageName != "">${pojo.importType("${parentPojo.packageName}.${parentPojo.shortName}")}<#else>${parentPojo.shortName}#if> ${property.name}=${parentHomeName}.getDefinedInstance();
2) line 104: public ${pojo.importType("java.util.List")}<${childPojo.shortName}> ${getter}() {
must be replaced by:
public ${pojo.importType("java.util.List")}<<#if childPojo.packageName != "">${pojo.importType("${childPojo.packageName}.${childPojo.shortName}")}<#else>${childPojo.shortName}#if>> ${getter}() {
IMHO, this "patch" is better than the ones proposed in the forum thread because it imports the missing classes.
The only use case which is does not work is if an EntityHome in a package "A" uses a class without package: there will be no import but the class will not compile because the class cannot be found. However, this use cases seems to be not planned in the Java specification (see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4361575). Moreover, using a class without package name is discouraged by best practices.
> seam-gen generate-ui problem - entity in a different package
> -------------------------------------------------------------
>
> Key: JBSEAM-3278
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3278
> Project: Seam
> Issue Type: Bug
> Components: Tools
> Reporter: Guido Simone
>
> Here is an example:
> The entity class PersonAddress has a ManyToOne relationship with Address which happens to be in a different package. The seam generate-ui command will generate (among other things) an EntityHome class named PersonAddressHome.
> //==================================
> // PersonAddress
> package com.domain.model.person;
> import com.domain.model.location.Address;
> @Entity
> public class PersonAddress
> {
> private Address address;
> private PersonAddressTypeLookup addressTypeLookup;
> private Person person;
> @ManyToOne @NotNull
> public Address getAddress() {return address;}
> @ManyToOne @NotNull
> public PersonAddressTypeLookup getAddressTypeLookup()
> { return addressTypeLookup; }
> @ManyToOne @NotNull
> public Person getPerson() {return person;}
> // setters omitted
> }
> which generates:
> //==================================
> // PersonAddressHome
> package com.domain.action;
> import com.domain.model.person.*;
> import org.jboss.seam.annotations.In;
> import org.jboss.seam.annotations.Name;
> import org.jboss.seam.framework.EntityHome;
> @Name("personAddressHome")
> public class PersonAddressHome extends EntityHome
> {
> // code omitted...
> public void wire()
> {
> getInstance();
> Address address = addressHome.getDefinedInstance();
> if (address != null)
> {
> getInstance().setAddress(address);
> }
> PersonAddressTypeLookup addressTypeLookup = addressTypeLookupHome
> .getDefinedInstance();
> if (addressTypeLookup != null)
> {
> getInstance().setAddressTypeLookup(addressTypeLookup);
> }
> Person person = personHome.getDefinedInstance();
> if (person != null)
> {
> getInstance().setPerson(person);
> }
> }
> The generated code imports all entities in com.domain.model.person, but does not import anything from com.domain.model.location so the compilation fails in the second line of the wire() method (Address cannot be resolved to a type).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Wed Jan 28 13:27:44 2009
From: jira-events at lists.jboss.org (Dan Hinojosa (JIRA))
Date: Wed, 28 Jan 2009 13:27:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3918)
org.jboss.seam.security.Identity needs to be decoupled from system for
testing purposes
Message-ID: <26827884.1233167264370.JavaMail.jira@cloud.prod.atl2.jboss.com>
org.jboss.seam.security.Identity needs to be decoupled from system for testing purposes
---------------------------------------------------------------------------------------
Key: JBSEAM-3918
URL: https://jira.jboss.org/jira/browse/JBSEAM-3918
Project: Seam
Issue Type: Feature Request
Components: Security
Affects Versions: 2.1.1.GA
Environment: JBoss Seam 2.1.1.GA
Reporter: Dan Hinojosa
org.jboss.seam.security.Identity cannot be used in unit testing. Unit testing being defined as an isolated (no db, no app server) test. If I provide an identity into a test, once I call assertTrue(identity.hasRole("xxx")); I get an understandable NullPointerException because there is no Seam Context available.
If I may recommend that org.jboss.seam.security.Identity be either an interface or a POJO with no dependencies as an API so TDD advocates can test their code easily. This would also fulfill Seam's idea that everything for the end user is testable.
Example Test
@Test(groups = "unit")
public void testAuthenticateSuccessWithRoles() {
Log log = createMock(Log.class);
EntityManager entityManager = createMock(EntityManager.class);
Query query = createMock(Query.class);
Calendar createdDate = Calendar.getInstance();
Calendar updatedDate = Calendar.getInstance();
User user = new User();
user.setCreatedDate(createdDate);
user.setEmail("ricardo at aol.com");
user.setFirstName("Ricardo");
user.setLastName("Montalban");
user.setName("rmontalban");
user.setNotes("userNotes2");
user.setPassword("passw0rd");
user.setId(220L);
user.setUpdatedDate(updatedDate);
Role role = new Role();
role.setName("mgmt");
role.setId(665L);
Calendar createdDate2 = Calendar.getInstance();
createdDate2.set(2009, 1, 15, 12, 14, 15);
role.setCreatedDate(createdDate2);
Calendar updatedDate2 = Calendar.getInstance();
updatedDate2.set(2009, 1, 17, 13, 16, 20);
role.setUpdatedDate(updatedDate2);
role.setNotes("notes");
user.addRole(role);
role.addUser(user);
Credentials credentials = new Credentials();
credentials.setUsername("rmontalban");
credentials.setPassword("passw0rd");
Identity identity = new Identity();
log.info("authenticating #0", "rmontalban");
expect(entityManager.createQuery("SELECT u from User u " +
"WHERE u.name = #{credentials.username} AND u.password = #{credentials.password}")).andReturn(query);
expect(query.getSingleResult()).andReturn(user);
replay(entityManager, query, log);
Authenticator authenticator = new Authenticator();
authenticator.setLog(log);
authenticator.setIdentity(identity);
authenticator.setEntityManager(entityManager);
authenticator.setCredentials(credentials);
assertTrue(authenticator.authenticate());
assertTrue(identity.hasRole("mgmt")); //NullPointerException here
verify(entityManager, query, log);
}
Output from the above test:
java.lang.NullPointerException
at org.jboss.seam.security.Identity.tryLogin(Identity.java:164)
at org.jboss.seam.security.Identity.hasRole(Identity.java:444)
at com.manning.mymanning.AuthenticatorTest.testAuthenticateSuccessWithRoles(AuthenticatorTest.java:128)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 02:36:44 2009
From: jira-events at lists.jboss.org (Julien Kronegg (JIRA))
Date: Thu, 29 Jan 2009 02:36:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3919) Add a
boolean property "enable
live preview" in the user profile properties
Message-ID: <19684365.1233214604248.JavaMail.jira@cloud.prod.atl2.jboss.com>
Add a boolean property "enable live preview" in the user profile properties
---------------------------------------------------------------------------
Key: JBSEAM-3919
URL: https://jira.jboss.org/jira/browse/JBSEAM-3919
Project: Seam
Issue Type: Feature Request
Affects Versions: 2.1.1.GA
Environment: Seam forum
Reporter: Julien Kronegg
Priority: Minor
When posting messages on the Seam forum, it is required to check the "Enable live preview" checkbox to enable post live preview.
Checking the "enable live preview" for each post is really boring...
It would be nice to add a boolean property in the user profile preferences to pre-check this checkbox.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 08:58:44 2009
From: jira-events at lists.jboss.org (philip andrew (JIRA))
Date: Thu, 29 Jan 2009 08:58:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3920) Seam-gen
creates code which
will not compile for multiple foreign keys (mysql)
Message-ID: <27877952.1233237524850.JavaMail.jira@cloud.prod.atl2.jboss.com>
Seam-gen creates code which will not compile for multiple foreign keys (mysql)
------------------------------------------------------------------------------
Key: JBSEAM-3920
URL: https://jira.jboss.org/jira/browse/JBSEAM-3920
Project: Seam
Issue Type: Bug
Affects Versions: 2.1.1.GA
Reporter: philip andrew
The bug is described at forum reference. Duplicate description is below.
Hi,
I have two mysql tables, user and staff. On my user table I have three foreign keys, social_security_assistance_confirmed_by_staff_id, approved_by_staff_id, rejected_by_staff_id, all reference staff.id.
I seam-gen with seam generate-entities and one problem is it makes my UserHome class wrong with:
@Name("userHome")
public class UserHome extends EntityHome {
@In(create = true)
StaffHome staffHome;
@In(create = true)
StaffHome staffHome;
@In(create = true)
StaffHome staffHome;
That does NOT compile, how come it generates this? Everything is ok if I delete the multiples and cut it down to one.
Here are the mysql tables
CREATE TABLE `staff` (
`id` int(10) NOT NULL auto_increment,
`user` varchar(80) collate utf8_unicode_ci NOT NULL,
`password` varchar(80) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
CREATE TABLE `user` (
`id` int(10) NOT NULL auto_increment,
`user` varchar(80) collate utf8_unicode_ci NOT NULL,
`password` varchar(80) collate utf8_unicode_ci NOT NULL,
`first_name_chinese` varchar(80) collate utf8_unicode_ci default NULL,
`last_name_chinese` varchar(80) collate utf8_unicode_ci default NULL,
`first_name_english` varchar(80) collate utf8_unicode_ci default NULL,
`last_name_english` varchar(80) collate utf8_unicode_ci default NULL,
`hk_id_number` varchar(20) collate utf8_unicode_ci NOT NULL,
`date_of_birth` date NOT NULL,
`contact_phone_number` varchar(20) collate utf8_unicode_ci default NULL,
`email` varchar(80) collate utf8_unicode_ci NOT NULL,
`address` varchar(255) collate utf8_unicode_ci default NULL,
`school` varchar(80) collate utf8_unicode_ci default NULL,
`social_security_assistance_indicated` tinyint(1) NOT NULL,
`social_security_assistance_confirmed` tinyint(1) NOT NULL default '0',
`social_security_assistance_confirmed_by_staff_id` int(10) default NULL,
`date_signed` date default NULL,
`approved_by_staff` tinyint(1) NOT NULL default '0',
`approved_by_staff_id` int(10) default NULL,
`rejected_by_staff` tinyint(1) NOT NULL default '0',
`rejected_by_staff_id` int(10) default NULL,
`blacklist` tinyint(1) NOT NULL default '0',
`created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`updated` timestamp NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user`),
UNIQUE KEY `hk_id_number` (`hk_id_number`),
UNIQUE KEY `email` (`email`),
KEY `social_security_assistance_confirmed_by_staff_id_idxfk` (`social_security_assistance_confirmed_by_staff_id`),
KEY `approved_by_staff_id_idxfk` (`approved_by_staff_id`),
KEY `rejected_by_staff_id_idxfk` (`rejected_by_staff_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
ALTER TABLE `user`
ADD CONSTRAINT `user_ibfk_3` FOREIGN KEY (`rejected_by_staff_id`) REFERENCES `staff` (`id`),
ADD CONSTRAINT `user_ibfk_1` FOREIGN KEY (`social_security_assistance_confirmed_by_staff_id`) REFERENCES `staff` (`id`),
ADD CONSTRAINT `user_ibfk_2` FOREIGN KEY (`approved_by_staff_id`) REFERENCES `staff` (`id`);
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 10:06:44 2009
From: jira-events at lists.jboss.org (Marek Novotny (JIRA))
Date: Thu, 29 Jan 2009 10:06:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Assigned: (JBSEAM-3894) Upgrade to
RichFaces 3.3.0.GA
In-Reply-To: <1399517.1232039043969.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <1241163.1233241604262.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marek Novotny reassigned JBSEAM-3894:
-------------------------------------
Assignee: Marek Novotny
> Upgrade to RichFaces 3.3.0.GA
> -----------------------------
>
> Key: JBSEAM-3894
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3894
> Project: Seam
> Issue Type: Task
> Components: Build
> Reporter: Jay Balunas
> Assignee: Marek Novotny
> Priority: Critical
> Fix For: 2.1.2.CR1
>
>
> RichFaces 3.3.0 has been released and Seam should upgrade to it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 11:07:44 2009
From: jira-events at lists.jboss.org (Adrian Mitev (JIRA))
Date: Thu, 29 Jan 2009 11:07:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1021) Don't log
exceptions if they are handled in pages.xml
In-Reply-To: <23674580.1173489027705.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <8314039.1233245264326.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-1021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450278#action_12450278 ]
Adrian Mitev commented on JBSEAM-1021:
--------------------------------------
This doesn't work for me (with Seam 2.1.1). For more info look here - http://seamframework.org/Community/HowNOTToLogAnExceptionInTheLogFile
> Don't log exceptions if they are handled in pages.xml
> -----------------------------------------------------
>
> Key: JBSEAM-1021
> URL: https://jira.jboss.org/jira/browse/JBSEAM-1021
> Project: Seam
> Issue Type: Bug
> Components: Security
> Reporter: Christian Bauer
> Assignee: Shane Bryzak
> Priority: Minor
> Fix For: 2.1.0.A1
>
>
> Mostly relevant for security:
> 01:54:16,042 ERROR [SeamPhaseListener] uncaught exception
> javax.faces.el.EvaluationException: Exception while invoking expression #{documentHome.checkNodePermission}
> ...
> You get hundreds of these when you run a site with security. Didn't find an open JIRA case for that.
> I think the SeamPhaseListener should not log.error() "uncaught exception" and print the whole thing _and_ pass it on to Exceptions.instance().handle(e). The phase listener doesn't know if it's handled or not.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 15:59:44 2009
From: jira-events at lists.jboss.org (Marek Novotny (JIRA))
Date: Thu, 29 Jan 2009 15:59:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Resolved: (JBSEAM-3894) Upgrade to
RichFaces 3.3.0.GA
In-Reply-To: <1399517.1232039043969.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <27239645.1233262784317.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marek Novotny resolved JBSEAM-3894.
-----------------------------------
Resolution: Done
richfaces was upgraded to 3.3.0.GA
> Upgrade to RichFaces 3.3.0.GA
> -----------------------------
>
> Key: JBSEAM-3894
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3894
> Project: Seam
> Issue Type: Task
> Components: Build
> Reporter: Jay Balunas
> Assignee: Marek Novotny
> Priority: Critical
> Fix For: 2.1.2.CR1
>
>
> RichFaces 3.3.0 has been released and Seam should upgrade to it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 16:49:44 2009
From: jira-events at lists.jboss.org (Eric Schneider (JIRA))
Date: Thu, 29 Jan 2009 16:49:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3921)
rewrite-filter not working with scheme in page descriptor
Message-ID: <6379993.1233265784182.JavaMail.jira@cloud.prod.atl2.jboss.com>
rewrite-filter not working with scheme in page descriptor
---------------------------------------------------------
Key: JBSEAM-3921
URL: https://jira.jboss.org/jira/browse/JBSEAM-3921
Project: Seam
Issue Type: Bug
Components: Core
Affects Versions: 2.1.1.GA
Environment: Windows XP / jdk1.5.0_06 / jboss-4.2.3.GA
Reporter: Eric Schneider
Using scheme="http" (or https) in *.page.xml breaks rewrite of outgoing patterns. Incoming pattern still maps.
Given: Two pages, one with a scheme specified and on without
* s:links to /NoScheme.xhtml will rewrite properly
* s:links to /Scheme.xhtml will not be rewritten ( keeps Scheme.seam format)
* The scheme of the page containing the links has no effect.
* Incoming rewrites are applied: /Scheme, /Scheme.seam, /NoScheme, /NoScheme.seam all work
Same behavior with Seam 2.1.0.SP1. Briefly tried svn trunk, but there seems to be other problems there (losing project name from context path on rewrites).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 16:51:44 2009
From: jira-events at lists.jboss.org (Eric Schneider (JIRA))
Date: Thu, 29 Jan 2009 16:51:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3921)
rewrite-filter not working with scheme in page descriptor
In-Reply-To: <6379993.1233265784182.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <8667113.1233265904355.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Schneider updated JBSEAM-3921:
-----------------------------------
Attachment: NoScheme.page.xml
NoScheme.xhtml
Scheme.page.xml
> rewrite-filter not working with scheme in page descriptor
> ---------------------------------------------------------
>
> Key: JBSEAM-3921
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3921
> Project: Seam
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.1.GA
> Environment: Windows XP / jdk1.5.0_06 / jboss-4.2.3.GA
> Reporter: Eric Schneider
> Attachments: NoScheme.page.xml, NoScheme.xhtml, Scheme.page.xml, Scheme.xhtml
>
>
> Using scheme="http" (or https) in *.page.xml breaks rewrite of outgoing patterns. Incoming pattern still maps.
> Given: Two pages, one with a scheme specified and on without
> * s:links to /NoScheme.xhtml will rewrite properly
> * s:links to /Scheme.xhtml will not be rewritten ( keeps Scheme.seam format)
> * The scheme of the page containing the links has no effect.
> * Incoming rewrites are applied: /Scheme, /Scheme.seam, /NoScheme, /NoScheme.seam all work
> Same behavior with Seam 2.1.0.SP1. Briefly tried svn trunk, but there seems to be other problems there (losing project name from context path on rewrites).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Thu Jan 29 16:51:44 2009
From: jira-events at lists.jboss.org (Eric Schneider (JIRA))
Date: Thu, 29 Jan 2009 16:51:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3921)
rewrite-filter not working with scheme in page descriptor
In-Reply-To: <6379993.1233265784182.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <16093551.1233265904480.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Schneider updated JBSEAM-3921:
-----------------------------------
Attachment: Scheme.xhtml
> rewrite-filter not working with scheme in page descriptor
> ---------------------------------------------------------
>
> Key: JBSEAM-3921
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3921
> Project: Seam
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.1.GA
> Environment: Windows XP / jdk1.5.0_06 / jboss-4.2.3.GA
> Reporter: Eric Schneider
> Attachments: NoScheme.page.xml, NoScheme.xhtml, Scheme.page.xml, Scheme.xhtml
>
>
> Using scheme="http" (or https) in *.page.xml breaks rewrite of outgoing patterns. Incoming pattern still maps.
> Given: Two pages, one with a scheme specified and on without
> * s:links to /NoScheme.xhtml will rewrite properly
> * s:links to /Scheme.xhtml will not be rewritten ( keeps Scheme.seam format)
> * The scheme of the page containing the links has no effect.
> * Incoming rewrites are applied: /Scheme, /Scheme.seam, /NoScheme, /NoScheme.seam all work
> Same behavior with Seam 2.1.0.SP1. Briefly tried svn trunk, but there seems to be other problems there (losing project name from context path on rewrites).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 04:47:54 2009
From: jira-events at lists.jboss.org (Ondrej Skutka (JIRA))
Date: Fri, 30 Jan 2009 04:47:54 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-3920) Seam-gen
creates code which will
not compile for multiple foreign keys (mysql)
In-Reply-To: <27877952.1233237524850.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <9115283.1233308874535.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ondrej Skutka closed JBSEAM-3920.
---------------------------------
Resolution: Duplicate Issue
> Seam-gen creates code which will not compile for multiple foreign keys (mysql)
> ------------------------------------------------------------------------------
>
> Key: JBSEAM-3920
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3920
> Project: Seam
> Issue Type: Bug
> Affects Versions: 2.1.1.GA
> Reporter: philip andrew
>
> The bug is described at forum reference. Duplicate description is below.
> Hi,
> I have two mysql tables, user and staff. On my user table I have three foreign keys, social_security_assistance_confirmed_by_staff_id, approved_by_staff_id, rejected_by_staff_id, all reference staff.id.
> I seam-gen with seam generate-entities and one problem is it makes my UserHome class wrong with:
> @Name("userHome")
> public class UserHome extends EntityHome {
> @In(create = true)
> StaffHome staffHome;
> @In(create = true)
> StaffHome staffHome;
> @In(create = true)
> StaffHome staffHome;
> That does NOT compile, how come it generates this? Everything is ok if I delete the multiples and cut it down to one.
> Here are the mysql tables
> CREATE TABLE `staff` (
> `id` int(10) NOT NULL auto_increment,
> `user` varchar(80) collate utf8_unicode_ci NOT NULL,
> `password` varchar(80) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`),
> UNIQUE KEY `user` (`user`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
> CREATE TABLE `user` (
> `id` int(10) NOT NULL auto_increment,
> `user` varchar(80) collate utf8_unicode_ci NOT NULL,
> `password` varchar(80) collate utf8_unicode_ci NOT NULL,
> `first_name_chinese` varchar(80) collate utf8_unicode_ci default NULL,
> `last_name_chinese` varchar(80) collate utf8_unicode_ci default NULL,
> `first_name_english` varchar(80) collate utf8_unicode_ci default NULL,
> `last_name_english` varchar(80) collate utf8_unicode_ci default NULL,
> `hk_id_number` varchar(20) collate utf8_unicode_ci NOT NULL,
> `date_of_birth` date NOT NULL,
> `contact_phone_number` varchar(20) collate utf8_unicode_ci default NULL,
> `email` varchar(80) collate utf8_unicode_ci NOT NULL,
> `address` varchar(255) collate utf8_unicode_ci default NULL,
> `school` varchar(80) collate utf8_unicode_ci default NULL,
> `social_security_assistance_indicated` tinyint(1) NOT NULL,
> `social_security_assistance_confirmed` tinyint(1) NOT NULL default '0',
> `social_security_assistance_confirmed_by_staff_id` int(10) default NULL,
> `date_signed` date default NULL,
> `approved_by_staff` tinyint(1) NOT NULL default '0',
> `approved_by_staff_id` int(10) default NULL,
> `rejected_by_staff` tinyint(1) NOT NULL default '0',
> `rejected_by_staff_id` int(10) default NULL,
> `blacklist` tinyint(1) NOT NULL default '0',
> `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
> `updated` timestamp NOT NULL default '0000-00-00 00:00:00',
> PRIMARY KEY (`id`),
> UNIQUE KEY `user` (`user`),
> UNIQUE KEY `hk_id_number` (`hk_id_number`),
> UNIQUE KEY `email` (`email`),
> KEY `social_security_assistance_confirmed_by_staff_id_idxfk` (`social_security_assistance_confirmed_by_staff_id`),
> KEY `approved_by_staff_id_idxfk` (`approved_by_staff_id`),
> KEY `rejected_by_staff_id_idxfk` (`rejected_by_staff_id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
> ALTER TABLE `user`
> ADD CONSTRAINT `user_ibfk_3` FOREIGN KEY (`rejected_by_staff_id`) REFERENCES `staff` (`id`),
> ADD CONSTRAINT `user_ibfk_1` FOREIGN KEY (`social_security_assistance_confirmed_by_staff_id`) REFERENCES `staff` (`id`),
> ADD CONSTRAINT `user_ibfk_2` FOREIGN KEY (`approved_by_staff_id`) REFERENCES `staff` (`id`);
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 06:06:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Fri, 30 Jan 2009 06:06:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3922) Wicket
example - build/run time
instrumentation switch cannot be controlled from outside of build script
Message-ID: <29085860.1233313604156.JavaMail.jira@cloud.prod.atl2.jboss.com>
Wicket example - build/run time instrumentation switch cannot be controlled from outside of build script
--------------------------------------------------------------------------------------------------------
Key: JBSEAM-3922
URL: https://jira.jboss.org/jira/browse/JBSEAM-3922
Project: Seam
Issue Type: Bug
Components: Examples
Affects Versions: 2.1.1.GA
Reporter: Jozef Hartinger
Assignee: Jozef Hartinger
Priority: Minor
Fix For: 2.1.2.CR1
Property "instrumentAtBuildTime" definition has to be removed from build.xml in order to deploy the example using runtime instrumentation. This is not suitable for automation framework.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 06:45:44 2009
From: jira-events at lists.jboss.org (philip andrew (JIRA))
Date: Fri, 30 Jan 2009 06:45:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3923) Seam-gen
should create drop-down combo for ENUM field types
Message-ID: <25744006.1233315944567.JavaMail.jira@cloud.prod.atl2.jboss.com>
Seam-gen should create drop-down combo for ENUM field types
-----------------------------------------------------------
Key: JBSEAM-3923
URL: https://jira.jboss.org/jira/browse/JBSEAM-3923
Project: Seam
Issue Type: Feature Request
Reporter: philip andrew
Priority: Minor
When I run seam-gen to create the UI, for ENUM field types of my table (mysql) it should create drop-down combo box for the ENUM input.
The current behavior is to create a text input field, if the user enters a value that does not match the ENUM then a exception is thrown, this is ugly for the user.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 06:56:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Fri, 30 Jan 2009 06:56:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-3922) Wicket
example - build/run time
instrumentation switch cannot be controlled from outside of build script
In-Reply-To: <29085860.1233313604156.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <17522122.1233316604414.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jozef Hartinger closed JBSEAM-3922.
-----------------------------------
Resolution: Done
> Wicket example - build/run time instrumentation switch cannot be controlled from outside of build script
> --------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3922
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3922
> Project: Seam
> Issue Type: Bug
> Components: Examples
> Affects Versions: 2.1.1.GA
> Reporter: Jozef Hartinger
> Assignee: Jozef Hartinger
> Priority: Minor
> Fix For: 2.1.2.CR1
>
>
> Property "instrumentAtBuildTime" definition has to be removed from build.xml in order to deploy the example using runtime instrumentation. This is not suitable for automation framework.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 09:35:44 2009
From: jira-events at lists.jboss.org (Jozef Hartinger (JIRA))
Date: Fri, 30 Jan 2009 09:35:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3449) Upgrade to
latest RestEasy beta
In-Reply-To: <21376851.1222121060720.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <9194088.1233326144299.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450396#action_12450396 ]
Jozef Hartinger commented on JBSEAM-3449:
-----------------------------------------
Updated to RESTEasy 1.0.1.GA. Basic functionality verified. Now working on better testcase.
Thanks to Scott Olcott, Xiaofeng Lin and John Sublette for patches.
> Upgrade to latest RestEasy beta
> -------------------------------
>
> Key: JBSEAM-3449
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3449
> Project: Seam
> Issue Type: Feature Request
> Components: WS
> Affects Versions: 2.1.0.BETA1
> Reporter: Scott Olcott
> Assignee: Jozef Hartinger
> Fix For: 2.1.2.GA
>
> Attachments: jboss-seam-resteasy-2.1.1.CR2.JBSEAM-3449-patched.jar, resteasyBeta-8.txt
>
>
> The latest beta is beta-8
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 10:34:44 2009
From: jira-events at lists.jboss.org (John Sublette (JIRA))
Date: Fri, 30 Jan 2009 10:34:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3449) Upgrade to
latest RestEasy beta
In-Reply-To: <21376851.1222121060720.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <12634244.1233329684276.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450412#action_12450412 ]
John Sublette commented on JBSEAM-3449:
---------------------------------------
After doing that patch, I noticed several additional bugs. For the Resteasy client interface, you can share an interface and implement it in a class without the tags and it should find it. The code as it existed with my patch would break if it found tags on interfaces, and wouldn't register tagless classes that implement tagged interfaces. The resteasy bootstrapper uses Scannotation to search and find them, and that worked for me, though I cludged it in a bit poorly.
Also, I had difficulty trying to get two web-applications to use Seam+Resteasy, only the last web-application worked. I had to make a ResteasyProviderFactory in the mold of ThreadLocalResteasyProviderFactory that used Component to retrieve the right Application scoped ResteasyDispatcher, where I stored the providerFactory that should be used in that application. Then I had to change the ResteasyDispatcher.onStartup() to register my factory with the Resteasy library, and to provide access to the stored instance of ResteasyProviderFactory.
In order to do this, though I had to replicate all seam and resteasy libraries in each application's WEB-INF/lib directory. I couldn't seem to get things to go into Tomcat's common library directory and still work - it would get the last loaded's context. I probably have to understand Seam's library structure better.
e.g.:
**ResteasyDispatcher**
....
@Create
public void onStartup()
{
log.debug("assigning registered RESTEasy resources and providers");
providerFactory = new ResteasyProviderFactory();
ResteasyProviderFactory providerFactory = new SeamApplicationLocalResteasyProviderFactory();
ResteasyProviderFactory.setInstance(providerFactory); // This is really necessary
....
public ResteasyProviderFactory getProviderFactory() {
return providerFactory;
}
**SeamApplicationLocalResteasyProviderFactory**
public class SeamApplicationLocalResteasyProviderFactory extends ResteasyProviderFactory
public ResteasyProviderFactory getDelegate()
{
ResteasyDispatcher dispatcher = (ResteasyDispatcher)Component.getInstance(ResteasyDispatcher.class, ScopeType.APPLICATION);
if (dispatcher == null)
return defaultFactory;
return dispatcher.getProviderFactory();
}
...
...(Everything else is pretty much identical to ThreadLocalResteasyProviderFactory)
> Upgrade to latest RestEasy beta
> -------------------------------
>
> Key: JBSEAM-3449
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3449
> Project: Seam
> Issue Type: Feature Request
> Components: WS
> Affects Versions: 2.1.0.BETA1
> Reporter: Scott Olcott
> Assignee: Jozef Hartinger
> Fix For: 2.1.2.GA
>
> Attachments: jboss-seam-resteasy-2.1.1.CR2.JBSEAM-3449-patched.jar, resteasyBeta-8.txt
>
>
> The latest beta is beta-8
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 19:51:44 2009
From: jira-events at lists.jboss.org (Nicolae Tabusca (JIRA))
Date: Fri, 30 Jan 2009 19:51:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3924) This patch
adds full integration of seam with gwt 1.5.
Message-ID: <3370166.1233363104171.JavaMail.jira@cloud.prod.atl2.jboss.com>
This patch adds full integration of seam with gwt 1.5.
------------------------------------------------------
Key: JBSEAM-3924
URL: https://jira.jboss.org/jira/browse/JBSEAM-3924
Project: Seam
Issue Type: Patch
Components: GWT
Affects Versions: 2.1.1.GA
Environment: Any
Reporter: Nicolae Tabusca
Priority: Critical
Fix For: 2.1.2.GA
### Eclipse Workspace Patch 1.0
#P jboss-seam
Index: src/remoting/org/jboss/seam/remoting/gwt/GWTService.java
===================================================================
--- src/remoting/org/jboss/seam/remoting/gwt/GWTService.java (revision 9989)
+++ src/remoting/org/jboss/seam/remoting/gwt/GWTService.java (working copy)
@@ -1,976 +1,178 @@
package org.jboss.seam.remoting.gwt;
+import static org.jboss.seam.ScopeType.APPLICATION;
+import static org.jboss.seam.annotations.Install.BUILT_IN;
+
import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.ParseException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.jboss.seam.core.ConversationPropagation;
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.Install;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.annotations.remoting.WebRemote;
+import org.jboss.seam.contexts.ServletLifecycle;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.seam.servlet.ContextualHttpServletRequest;
+import org.jboss.seam.util.EJB;
import org.jboss.seam.web.AbstractResource;
import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
-import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.SerializationException;
import com.google.gwt.user.server.rpc.RPC;
import com.google.gwt.user.server.rpc.RPCRequest;
-import com.google.gwt.user.server.rpc.RPCServletUtils;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
-import com.google.gwt.user.server.rpc.SerializationPolicy;
-import com.google.gwt.user.server.rpc.SerializationPolicyLoader;
-import com.google.gwt.user.server.rpc.SerializationPolicyProvider;
-import com.google.gwt.user.server.rpc.UnexpectedException;
import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader;
-import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter;
/**
- * Abstract base class for GWT 1.5 integration.
+ * GWT integration.
*
- * @author Shane Bryzak
+ * @author Nicolae Tabusca
*/
-public abstract class GWTService extends AbstractResource implements SerializationPolicyProvider
-{
- protected static final LogProvider log = Logging.getLogProvider(GWTService.class);
+ at Scope(APPLICATION)
+ at Name("org.jboss.seam.remoting.gwt.gwtRemoteService")
+ at Install(precedence = BUILT_IN, classDependencies = {"com.google.gwt.user.client.rpc.RemoteService"})
+ at BypassInterceptors
+public class GWTService extends AbstractResource {
+
+ protected static final LogProvider log
+ = Logging.getLogProvider(GWTService.class);
- private static final HashMap> TYPE_NAMES;
+ public GWTService() {
+ }
- static
- {
- TYPE_NAMES = new HashMap>();
- TYPE_NAMES.put("Z", boolean.class);
- TYPE_NAMES.put("B", byte.class);
- TYPE_NAMES.put("C", char.class);
- TYPE_NAMES.put("D", double.class);
- TYPE_NAMES.put("F", float.class);
- TYPE_NAMES.put("I", int.class);
- TYPE_NAMES.put("J", long.class);
- TYPE_NAMES.put("S", short.class);
+ @Override
+ public String getResourcePath() {
+ return "/gwt";
+ }
- }
-
- /**
- * A cache of moduleBaseURL and serialization policy strong name to
- * {@link SerializationPolicy}.
- */
- private final Map serializationPolicyCache = new HashMap();
+ /**
+ * This is called internally.
+ *
+ * @see RemoteServiceServlet#doPost
+ */
+ @Override
+ public final void getResource(final HttpServletRequest request,
+ final HttpServletResponse response)
+ throws ServletException, IOException {
- @Override
- public String getResourcePath()
- {
- return "/gwt";
- }
+ ContextualHttpServletRequest contextualRequest
+ = new ContextualHttpServletRequest(request) {
- protected abstract ServerSerializationStreamReader getStreamReader();
+ private GWTController controller = new GWTController();
- protected abstract ServerSerializationStreamWriter getStreamWriter();
-
- protected abstract String createResponse(
- ServerSerializationStreamWriter stream, Class responseType,
- Object responseObj, boolean isException);
-
- // private final Set knownImplementedInterfaces = new HashSet();
- private final ThreadLocal perThreadRequest = new ThreadLocal();
-
- private final ThreadLocal perThreadResponse = new ThreadLocal();
-
- /**
- * This is called internally.
- *
- * @see RemoteServiceServlet#doPost
- */
- @Override
- public final void getResource(final HttpServletRequest request,
- final HttpServletResponse response) throws ServletException,
- IOException
- {
- try
- {
- // Store the request & response objects in thread-local storage.
- perThreadRequest.set(request);
- perThreadResponse.set(response);
-
- new ContextualHttpServletRequest(request) {
@Override
- public void process() throws Exception
- {
-
- try
- {
- // Read the request fully.
- //
- String requestPayload = RemoteServiceServlet_readContent(request);
-
- RemoteServiceServlet_onBeforeRequestDeserialized(requestPayload);
-
- // Invoke the core dispatching logic, which returns the
- // serialized result
- String responsePayload = processCall(requestPayload);
-
- RemoteServiceServlet_onAfterResponseSerialized(responsePayload);
-
- // Write the response.
- //
- RemoteServiceServlet_writeResponse(request, response,
- responsePayload);
-
- } catch (Throwable e)
- {
- RemoteServiceServlet_doUnexpectedFailure(e);
- }
-
+ public void process() throws Exception {
+
+ controller.service(request, response);
}
+ };
- @Override
- protected void restoreConversationId()
- {
- ConversationPropagation.instance().setConversationId(
- GWTService.this.perThreadRequest.get().getParameter(
- "conversationId"));
- }
+ contextualRequest.run();
- @Override
- protected void handleConversationPropagation()
- {
- }
- }.run();
- } finally
- {
- perThreadRequest.remove();
- perThreadResponse.remove();
- }
- }
+ }
- /**
- * This is public so that it can be unit tested easily without HTTP.
- */
- public String processCall(String payload) throws SerializationException
- {
- // Create a stream to deserialize the request.
- //
- // ServerSerializationStreamReader streamReader = getStreamReader();
- // streamReader.prepareToRead(payload);
- //
- // // Read the service interface
- // //
- // String serviceIntfName = streamReader.readString();
- //
- // // Read the method name.
- // //
- // String methodName = streamReader.readString();
- //
- // // Read the number and names of the parameter classes from the stream.
- // // We have to do this so that we can find the correct overload of the
- // // method.
- // //
- // int paramCount = streamReader.readInt();
- // Class[] paramTypes = new Class[paramCount];
- // for (int i = 0; i < paramTypes.length; i++)
- // {
- // String paramClassName = streamReader.readString();
- // try
- // {
- // paramTypes[i] = getClassOrPrimitiveFromName(paramClassName);
- // } catch (ClassNotFoundException e)
- // {
- // throw new SerializationException("Unknown parameter " + i
- // + " type '" + paramClassName + "'", e);
- // }
- // }
- //
- // // Deserialize the parameters.
- // //
- // Object[] args = new Object[paramCount];
- // for (int i = 0; i < args.length; i++)
- // {
- // args[i] = streamReader.deserializeValue(paramTypes[i]);
- // }
+ @SuppressWarnings("serial")
+ private class GWTController extends RemoteServiceServlet {
- try
- {
- SeamRPCRequest rpcRequest = RPC_decodeRequest(payload,
- this.getClass(), this);
+ @Override
+ public ServletContext getServletContext() {
+ return ServletLifecycle.getServletContext();
+ }
+
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public String processCall(String payload) throws SerializationException {
+ try {
+ Component remoteService = getRemoteServiceComponent(payload);
+
+ Class beanClass = remoteService.getBeanClass();
+ RPCRequest rpcRequest = RPC.decodeRequest(payload, beanClass, this);
- return RPC_invokeAndEncodeResponse(this, rpcRequest.getMethod(),
- rpcRequest.getParameterTypes(), rpcRequest.getParameters(),
- rpcRequest.getSerializationPolicy());
- } catch (IncompatibleRemoteServiceException ex)
- {
- getServletContext()
- .log(
- "An IncompatibleRemoteServiceException was thrown while processing this call.",
- ex);
- return RPC.encodeResponseForFailure(null, ex);
- }
+ Method serviceDef = rpcRequest.getMethod();
+ Method serviceImpl = beanClass.getMethod(serviceDef.getName(),
+ serviceDef.getParameterTypes());
+ if (isWebRemoteAnnotated(serviceImpl) == false) {
+ throw new RuntimeException(
+ "Unable to access a service method called ["
+ + serviceImpl.getName() + "] on class ["
+ + beanClass.getName()
+ + "] without the @WebRemote attribute. ");
+ }
- // Make the call via reflection.
- //
- // String responsePayload = GENERIC_FAILURE_MSG;
- // ServerSerializationStreamWriter streamWriter = getStreamWriter();
- // Throwable caught = null;
- // try
- // {
- // GWTToSeamAdapter.ReturnedObject returnedObject =
- // adapter.callWebRemoteMethod(
- // serviceIntfName, methodName, paramTypes, args);
- // Class returnType = returnedObject.returnType;
- // Object returnVal = returnedObject.returnedObject;
- // // Class returnType = serviceIntfMethod.getReturnType();
- // // Object returnVal = serviceIntfMethod.invoke(this, args);
- // responsePayload = createResponse(streamWriter, returnType, returnVal,
- // false);
- // } catch (IllegalArgumentException e)
- // {
- // caught = e;
- // } catch (IllegalAccessException e)
- // {
- // caught = e;
- // } catch (InvocationTargetException e)
- // {
- // // Try to serialize the caught exception if the client is expecting it,
- // // otherwise log the exception server-side.
- // caught = e;
- // Throwable cause = e.getCause();
- // if (cause != null)
- // {
- // // Update the caught exception to the underlying cause
- // caught = cause;
- // // Serialize the exception back to the client if it's a declared
- // // exception
- // if (cause instanceof SerializableException)
- // {
- // Class thrownClass = cause.getClass();
- // responsePayload = createResponse(streamWriter, thrownClass,
- // cause, true);
- // // Don't log the exception on the server
- // caught = null;
- // }
- // }
- // }
- //
- // if (caught != null)
- // {
- // responsePayload = GENERIC_FAILURE_MSG;
- // ServletContext servletContext = getServletContext();
- // // servletContext may be null (for example, when unit testing)
- // if (servletContext != null)
- // {
- // // Log the exception server side
- // servletContext.log("Exception while dispatching incoming RPC call",
- // caught);
- // }
- // }
- }
+ return RPC.invokeAndEncodeResponse(
+ Component.getInstance(remoteService.getName()),
+ rpcRequest.getMethod(), rpcRequest.getParameters(),
+ rpcRequest.getSerializationPolicy());
- /**
- * Gets the HttpServletRequest
object for the current call. It
- * is stored thread-locally so that simultaneous invocations can have
- * different request objects.
- */
- protected final HttpServletRequest getThreadLocalRequest()
- {
- return perThreadRequest.get();
- }
-
- /**
- * Gets the HttpServletResponse
object for the current call. It
- * is stored thread-locally so that simultaneous invocations can have
- * different response objects.
- */
- protected final HttpServletResponse getThreadLocalResponse()
- {
- return perThreadResponse.get();
- }
-
- /**
- * Returns an {@link RPCRequest} that is built by decoding the contents of an
- * encoded RPC request and optionally validating that type can handle the
- * request. If the type parameter is not null
, the
- * implementation checks that the type is assignable to the
- * {@link com.google.gwt.user.client.rpc.RemoteService} interface requested
- * in the encoded request string.
- *
- *
- * If the serializationPolicyProvider parameter is not null
, it
- * is asked for a {@link SerializationPolicy} to use to restrict the set of
- * types that can be decoded from the request. If this parameter is
- * null
, then only subtypes of
- * {@link com.google.gwt.user.client.rpc.IsSerializable IsSerializable} or
- * types which have custom field serializers can be decoded.
- *
- *
- *
- * Invoking this method with null
for the type parameter,
- * decodeRequest(encodedRequest, null)
, is equivalent to calling
- * decodeRequest(encodedRequest)
.
- *
- *
- * @param encodedRequest
- * a string that encodes the
- * {@link com.google.gwt.user.client.rpc.RemoteService} interface,
- * the service method, and the arguments to pass to the service
- * method
- * @param type
- * if not null
, the implementation checks that the
- * type is assignable to the
- * {@link com.google.gwt.user.client.rpc.RemoteService} interface
- * encoded in the encoded request string.
- * @param serializationPolicyProvider
- * if not null
, the implementation asks this provider
- * for a {@link SerializationPolicy} which will be used to restrict
- * the set of types that can be decoded from this request
- * @return an {@link RPCRequest} instance
- *
- * @throws NullPointerException
- * if the encodedRequest is null
- * @throws IllegalArgumentException
- * if the encodedRequest is an empty string
- * @throws IncompatibleRemoteServiceException
- * if any of the following conditions apply:
- *
- * - if the types in the encoded request cannot be deserialized
- * - if the {@link ClassLoader} acquired from
- *
Thread.currentThread().getContextClassLoader()
- * cannot load the service interface or any of the types specified
- * in the encodedRequest
- * - the requested interface is not assignable to
- * {@link com.google.gwt.user.client.rpc.RemoteService}
- * - the service method requested in the encodedRequest is not a
- * member of the requested service interface
- * - the type parameter is not
null
and is not
- * assignable to the requested
- * {@link com.google.gwt.user.client.rpc.RemoteService} interface
- *
- */
- public static SeamRPCRequest RPC_decodeRequest(String encodedRequest,
- Class> type, SerializationPolicyProvider serializationPolicyProvider)
- {
- if (encodedRequest == null)
- {
- throw new NullPointerException("encodedRequest cannot be null");
- }
-
- if (encodedRequest.length() == 0)
- {
- throw new IllegalArgumentException("encodedRequest cannot be empty");
- }
-
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
- try
- {
- ServerSerializationStreamReader streamReader = new ServerSerializationStreamReader(
- classLoader, serializationPolicyProvider);
- streamReader.prepareToRead(encodedRequest);
-
- // Read the name of the RemoteService interface
- String serviceIntfName = streamReader.readString();
-
- /*
- * todo?? if (type != null) { if (!implementsInterface(type,
- * serviceIntfName)) { // The service does not implement the requested
- * interface throw new IncompatibleRemoteServiceException(
- * "Blocked attempt to access interface '" + serviceIntfName +
- * "', which is not implemented by '" + printTypeName(type) +
- * "'; this is either misconfiguration or a hack attempt"); } }
- */
-
- SerializationPolicy serializationPolicy = streamReader
- .getSerializationPolicy();
- Class> serviceIntf;
- try
- {
- serviceIntf = RPC_getClassFromSerializedName(serviceIntfName,
- classLoader);
- if (!RemoteService.class.isAssignableFrom(serviceIntf))
- {
- // The requested interface is not a RemoteService interface
- throw new IncompatibleRemoteServiceException(
- "Blocked attempt to access interface '"
- + printTypeName(serviceIntf)
- + "', which doesn't extend RemoteService; this is either misconfiguration or a hack attempt");
+ } catch (IncompatibleRemoteServiceException ex) {
+ log.error(ex.getMessage(), ex);
+ return RPC.encodeResponseForFailure(null, ex);
+ } catch (SecurityException e) {
+ log.error(e.getMessage(), e);
+ return RPC.encodeResponseForFailure(null, e);
+ } catch (NoSuchMethodException e) {
+ log.error(e.getMessage(), e);
+ return RPC.encodeResponseForFailure(null, e);
}
- } catch (ClassNotFoundException e)
- {
- throw new IncompatibleRemoteServiceException(
- "Could not locate requested interface '" + serviceIntfName
- + "' in default classloader", e);
- }
+ }
- String serviceMethodName = streamReader.readString();
+ @SuppressWarnings("unchecked")
+ private Component getRemoteServiceComponent(String payload)
+ throws SerializationException {
- int paramCount = streamReader.readInt();
- Class>[] parameterTypes = new Class[paramCount];
+ ClassLoader classLoader = Thread.currentThread()
+ .getContextClassLoader();
+ ServerSerializationStreamReader streamReader
+ = new ServerSerializationStreamReader(classLoader, this);
- for (int i = 0; i < parameterTypes.length; i++)
- {
- String paramClassName = streamReader.readString();
- try
- {
- parameterTypes[i] = RPC_getClassFromSerializedName(
- paramClassName, classLoader);
- } catch (ClassNotFoundException e)
- {
- throw new IncompatibleRemoteServiceException("Parameter " + i
- + " of is of an unknown type '" + paramClassName + "'", e);
- }
- }
+ streamReader.prepareToRead(payload);
- try
- {
- Method method = serviceIntf.getMethod(serviceMethodName,
- parameterTypes);
+ // Read the name of the RemoteService interface
+ String serviceIntfName = streamReader.readString();
- Object[] parameterValues = new Object[parameterTypes.length];
- for (int i = 0; i < parameterValues.length; i++)
- {
- parameterValues[i] = streamReader
- .deserializeValue(parameterTypes[i]);
+ Component component = Component.forName(serviceIntfName);
+ if (null == component) {
+ throw new RuntimeException("No such component: "
+ + serviceIntfName);
}
- return new SeamRPCRequest(method, parameterValues, parameterTypes,
- serializationPolicy);
+ if (component.getType().isSessionBean()
+ && component.getBusinessInterfaces().size() > 0) {
- } catch (NoSuchMethodException e)
- {
- throw new IncompatibleRemoteServiceException(
- formatMethodNotFoundErrorMessage(serviceIntf,
- serviceMethodName, parameterTypes));
- }
- } catch (SerializationException ex)
- {
- throw new IncompatibleRemoteServiceException(ex.getMessage(), ex);
- }
- }
+ boolean localDefined = false;
+ for (Class c : component.getBusinessInterfaces()) {
+ if (c.isAnnotationPresent(EJB.LOCAL)) {
+ localDefined = true;
+ break;
+ }
+ }
- /**
- * Returns the {@link Class} instance for the named class or primitive type.
- *
- * @param serializedName
- * the serialized name of a class or primitive type
- * @param classLoader
- * the classLoader used to load {@link Class}es
- * @return Class instance for the given type name
- * @throws ClassNotFoundException
- * if the named type was not found
- */
- private static Class> RPC_getClassFromSerializedName(
- String serializedName, ClassLoader classLoader)
- throws ClassNotFoundException
- {
- Class> value = TYPE_NAMES.get(serializedName);
- if (value != null)
- {
- return value;
- }
-
- return Class.forName(serializedName, false, classLoader);
- }
-
- /**
- * Returns a string that encodes the result of calling a service method,
- * which could be the value returned by the method or an exception thrown by
- * it.
- *
- *
- * If the serializationPolicy parameter is not null
, it is used
- * to determine what types can be encoded as part of this response. If this
- * parameter is null
, then only subtypes of
- * {@link com.google.gwt.user.client.rpc.IsSerializable IsSerializable} or
- * types which have custom field serializers may be encoded.
- *
- *
- *
- * This method does no security checking; security checking must be done on
- * the method prior to this invocation.
- *
- *
- * @param target
- * instance on which to invoke the serviceMethod
- * @param serviceMethod
- * the method to invoke
- * @param args
- * arguments used for the method invocation
- * @param serializationPolicy
- * determines the serialization policy to be used
- * @return a string which encodes either the method's return or a checked
- * exception thrown by the method
- *
- * @throws NullPointerException
- * if the serviceMethod or the serializationPolicy are
- * null
- * @throws SecurityException
- * if the method cannot be accessed or if the number or type of
- * actual and formal arguments differ
- * @throws SerializationException
- * if an object could not be serialized by the stream
- * @throws UnexpectedException
- * if the serviceMethod throws a checked exception that is not
- * declared in its signature
- */
- public static String RPC_invokeAndEncodeResponse(Object target,
- Method serviceMethod, Class[] paramTypes, Object[] args,
- SerializationPolicy serializationPolicy) throws SerializationException
- {
- if (serviceMethod == null)
- {
- throw new NullPointerException("serviceMethod");
- }
-
- if (serializationPolicy == null)
- {
- throw new NullPointerException("serializationPolicy");
- }
-
- String responsePayload;
- try
- {
- GWTToSeamAdapter adapter = GWTToSeamAdapter.instance();
-
- String serviceIntfName = serviceMethod.getDeclaringClass().getName();
-
- GWTToSeamAdapter.ReturnedObject returnedObject = adapter
- .callWebRemoteMethod(serviceIntfName, serviceMethod.getName(),
- paramTypes, args);
-
- // Object result = serviceMethod.invoke(target, args);
-
- responsePayload = RPC.encodeResponseForSuccess(serviceMethod,
- returnedObject.returnedObject, serializationPolicy);
- } catch (IllegalAccessException e)
- {
- SecurityException securityException = new SecurityException(
- formatIllegalAccessErrorMessage(target, serviceMethod));
- securityException.initCause(e);
- throw securityException;
- } catch (IllegalArgumentException e)
- {
- SecurityException securityException = new SecurityException(
- formatIllegalArgumentErrorMessage(target, serviceMethod, args));
- securityException.initCause(e);
- throw securityException;
- } catch (InvocationTargetException e)
- {
- // Try to encode the caught exception
- //
- Throwable cause = e.getCause();
-
- responsePayload = RPC.encodeResponseForFailure(serviceMethod, cause,
- serializationPolicy);
- }
-
- return responsePayload;
- }
-
- /**
- * Override this method to examine the serialized response that will be
- * returned to the client. The default implementation does nothing and need
- * not be called by subclasses.
- */
- protected void RemoteServiceServlet_onAfterResponseSerialized(
- String serializedResponse)
- {
- }
-
- /**
- * Override this method to examine the serialized version of the request
- * payload before it is deserialized into objects. The default implementation
- * does nothing and need not be called by subclasses.
- */
- protected void RemoteServiceServlet_onBeforeRequestDeserialized(
- String serializedRequest)
- {
- }
-
- /**
- * Override this method in order to control the parsing of the incoming
- * request. For example, you may want to bypass the check of the Content-Type
- * and character encoding headers in the request, as some proxies re-write
- * the request headers. Note that bypassing these checks may expose the
- * servlet to some cross-site vulnerabilities.
- *
- * @param request
- * the incoming request
- * @return the content of the incoming request encoded as a string.
- */
- protected String RemoteServiceServlet_readContent(HttpServletRequest request)
- throws ServletException, IOException
- {
- return RPCServletUtils.readContentAsUtf8(request, true);
- }
-
- public final SerializationPolicy getSerializationPolicy(
- String moduleBaseURL, String strongName)
- {
-
- SerializationPolicy serializationPolicy = getCachedSerializationPolicy(
- moduleBaseURL, strongName);
- if (serializationPolicy != null)
- {
- return serializationPolicy;
- }
-
- serializationPolicy = doGetSerializationPolicy(getThreadLocalRequest(),
- moduleBaseURL, strongName);
-
- if (serializationPolicy == null)
- {
- // Failed to get the requested serialization policy; use the default
- getServletContext()
- .log(
- "WARNING: Failed to get the SerializationPolicy '"
- + strongName
- + "' for module '"
- + moduleBaseURL
- + "'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.");
- serializationPolicy = RPC.getDefaultSerializationPolicy();
- }
-
- // This could cache null or an actual instance. Either way we will not
- // attempt to lookup the policy again.
- putCachedSerializationPolicy(moduleBaseURL, strongName,
- serializationPolicy);
-
- return serializationPolicy;
- }
-
- private SerializationPolicy getCachedSerializationPolicy(
- String moduleBaseURL, String strongName)
- {
- synchronized (serializationPolicyCache)
- {
- return serializationPolicyCache.get(moduleBaseURL + strongName);
- }
- }
-
- private void putCachedSerializationPolicy(String moduleBaseURL,
- String strongName, SerializationPolicy serializationPolicy)
- {
- synchronized (serializationPolicyCache)
- {
- serializationPolicyCache.put(moduleBaseURL + strongName,
- serializationPolicy);
- }
- }
-
- /**
- * Gets the {@link SerializationPolicy} for given module base URL and strong
- * name if there is one.
- *
- * Override this method to provide a {@link SerializationPolicy} using an
- * alternative approach.
- *
- * @param request
- * the HTTP request being serviced
- * @param moduleBaseURL
- * as specified in the incoming payload
- * @param strongName
- * a strong name that uniquely identifies a serialization policy
- * file
- * @return a {@link SerializationPolicy} for the given module base URL and
- * strong name, or null
if there is none
- */
- protected SerializationPolicy doGetSerializationPolicy(
- HttpServletRequest request, String moduleBaseURL, String strongName)
- {
- // The request can tell you the path of the web app relative to the
- // container root.
- String contextPath = request.getContextPath();
-
- String modulePath = null;
- if (moduleBaseURL != null)
- {
- try
- {
- modulePath = new URL(moduleBaseURL).getPath();
- } catch (MalformedURLException ex)
- {
- // log the information, we will default
- getServletContext().log(
- "Malformed moduleBaseURL: " + moduleBaseURL, ex);
- }
- }
-
- SerializationPolicy serializationPolicy = null;
-
- /*
- * Check that the module path must be in the same web app as the servlet
- * itself. If you need to implement a scheme different than this, override
- * this method.
- */
- if (modulePath == null || !modulePath.startsWith(contextPath))
- {
- String message = "ERROR: The module path requested, "
- + modulePath
- + ", is not in the same web application as this servlet, "
- + contextPath
- + ". Your module may not be properly configured or your client and server code maybe out of date.";
- getServletContext().log(message);
- } else
- {
- // Strip off the context path from the module base URL. It should be a
- // strict prefix.
- String contextRelativePath = modulePath
- .substring(contextPath.length());
-
- String serializationPolicyFilePath = SerializationPolicyLoader
- .getSerializationPolicyFileName(contextRelativePath + strongName);
-
- // Open the RPC resource file read its contents.
- InputStream is = getServletContext().getResourceAsStream(
- serializationPolicyFilePath);
- try
- {
- if (is != null)
- {
- try
- {
- serializationPolicy = SerializationPolicyLoader
- .loadFromStream(is, null);
- } catch (ParseException e)
- {
- getServletContext().log(
- "ERROR: Failed to parse the policy file '"
- + serializationPolicyFilePath + "'", e);
- } catch (IOException e)
- {
- getServletContext().log(
- "ERROR: Could not read the policy file '"
- + serializationPolicyFilePath + "'", e);
- }
- } else
- {
- String message = "ERROR: The serialization policy file '"
- + serializationPolicyFilePath
- + "' was not found; did you forget to include it in this deployment?";
- getServletContext().log(message);
+ if (localDefined == false) {
+ throw new RuntimeException(
+ String.format("Type cannot be determined for component [%s]. Please ensure that it has a local interface.",
+ component));
+ }
}
- } finally
- {
- if (is != null)
- {
- try
- {
- is.close();
- } catch (IOException e)
- {
- // Ignore this error
- }
- }
- }
- }
+
+ return component;
+ }
- return serializationPolicy;
- }
-
- private void RemoteServiceServlet_writeResponse(HttpServletRequest request,
- HttpServletResponse response, String responsePayload)
- throws IOException
- {
- boolean gzipEncode = RPCServletUtils.acceptsGzipEncoding(request)
- && shouldCompressResponse(request, response, responsePayload);
-
- RPCServletUtils.writeResponse(getServletContext(), response,
- responsePayload, gzipEncode);
- }
-
- /**
- * Override this method to control what should happen when an exception
- * escapes the {@link #processCall(String)} method. The default
- * implementation will log the failure and send a generic failure response to
- * the client.
- *
- *
- * An "expected failure" is an exception thrown by a service method that is
- * declared in the signature of the service method. These exceptions are
- * serialized back to the client, and are not passed to this method. This
- * method is called only for exceptions or errors that are not part of the
- * service method's signature, or that result from SecurityExceptions,
- * SerializationExceptions, or other failures within the RPC framework.
- *
- *
- * Note that if the desired behavior is to both send the GENERIC_FAILURE_MSG
- * response AND to rethrow the exception, then this method should first send
- * the GENERIC_FAILURE_MSG response itself (using getThreadLocalResponse),
- * and then rethrow the exception. Rethrowing the exception will cause it to
- * escape into the servlet container.
- *
- * @param e
- * the exception which was thrown
- */
- protected void RemoteServiceServlet_doUnexpectedFailure(Throwable e)
- {
- ServletContext servletContext = getServletContext();
- RPCServletUtils.writeResponseForUnexpectedFailure(servletContext,
- getThreadLocalResponse(), e);
- }
-
- /**
- * Determines whether the response to a given servlet request should or
- * should not be GZIP compressed. This method is only called in cases where
- * the requester accepts GZIP encoding.
- *
- * This implementation currently returns true
if the response
- * string's estimated byte length is longer than 256 bytes. Subclasses can
- * override this logic.
- *
- *
- * @param request
- * the request being served
- * @param response
- * the response that will be written into
- * @param responsePayload
- * the payload that is about to be sent to the client
- * @return true
if responsePayload should be GZIP compressed,
- * otherwise false
.
- */
- protected boolean shouldCompressResponse(HttpServletRequest request,
- HttpServletResponse response, String responsePayload)
- {
- return RPCServletUtils
- .exceedsUncompressedContentLengthLimit(responsePayload);
- }
-
- private static String formatMethodNotFoundErrorMessage(Class> serviceIntf,
- String serviceMethodName, Class>[] parameterTypes)
- {
- StringBuffer sb = new StringBuffer();
-
- sb.append("Could not locate requested method '");
- sb.append(serviceMethodName);
- sb.append("(");
- for (int i = 0; i < parameterTypes.length; ++i)
- {
- if (i > 0)
- {
- sb.append(", ");
- }
- sb.append(printTypeName(parameterTypes[i]));
- }
- sb.append(")'");
-
- sb.append(" in interface '");
- sb.append(printTypeName(serviceIntf));
- sb.append("'");
-
- return sb.toString();
- }
-
- private static String formatIllegalAccessErrorMessage(Object target,
- Method serviceMethod)
- {
- StringBuffer sb = new StringBuffer();
- sb.append("Blocked attempt to access inaccessible method '");
- sb.append(getSourceRepresentation(serviceMethod));
- sb.append("'");
-
- if (target != null)
- {
- sb.append(" on target '");
- sb.append(printTypeName(target.getClass()));
- sb.append("'");
- }
-
- sb.append("; this is either misconfiguration or a hack attempt");
-
- return sb.toString();
- }
-
- private static String formatIllegalArgumentErrorMessage(Object target,
- Method serviceMethod, Object[] args)
- {
- StringBuffer sb = new StringBuffer();
- sb.append("Blocked attempt to invoke method '");
- sb.append(getSourceRepresentation(serviceMethod));
- sb.append("'");
-
- if (target != null)
- {
- sb.append(" on target '");
- sb.append(printTypeName(target.getClass()));
- sb.append("'");
- }
-
- sb.append(" with invalid arguments");
-
- if (args != null && args.length > 0)
- {
- sb.append(Arrays.asList(args));
- }
-
- return sb.toString();
- }
-
- /**
- * Returns the source representation for a method signature.
- *
- * @param method
- * method to get the source signature for
- * @return source representation for a method signature
- */
- private static String getSourceRepresentation(Method method)
- {
- return method.toString().replace('$', '.');
- }
-
- /**
- * Straight copy from
- * {@link com.google.gwt.dev.util.TypeInfo#getSourceRepresentation(Class)} to
- * avoid runtime dependency on gwt-dev.
- */
- private static String printTypeName(Class> type)
- {
- // Primitives
- //
- if (type.equals(Integer.TYPE))
- {
- return "int";
- } else if (type.equals(Long.TYPE))
- {
- return "long";
- } else if (type.equals(Short.TYPE))
- {
- return "short";
- } else if (type.equals(Byte.TYPE))
- {
- return "byte";
- } else if (type.equals(Character.TYPE))
- {
- return "char";
- } else if (type.equals(Boolean.TYPE))
- {
- return "boolean";
- } else if (type.equals(Float.TYPE))
- {
- return "float";
- } else if (type.equals(Double.TYPE))
- {
- return "double";
- }
-
- // Arrays
- //
- if (type.isArray())
- {
- Class> componentType = type.getComponentType();
- return printTypeName(componentType) + "[]";
- }
-
- // Everything else
- //
- return type.getName().replace('$', '.');
- }
-
-}
+ /**
+ * Only allow methods annotated with @WebRemote for security reasons.
+ */
+ private boolean isWebRemoteAnnotated(Method method) {
+ if (method == null)
+ return false;
+ return method.getAnnotation(WebRemote.class) != null;
+ }
+ }
+}
\ No newline at end of file
Index: src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java
===================================================================
--- src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java (revision 9989)
+++ src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java (working copy)
@@ -1,210 +0,0 @@
-package org.jboss.seam.remoting.gwt;
-
-import static org.jboss.seam.ScopeType.APPLICATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jboss.seam.Component;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-import org.jboss.seam.annotations.remoting.WebRemote;
-import org.jboss.seam.util.EJB;
-
-/**
- * This class adapts GWT RPC mechanism to Seam actions.
- *
- * @author Michael Neale
- */
- at Scope(APPLICATION)
- at Name("org.jboss.seam.remoting.gwt.gwtToSeamAdapter")
- at BypassInterceptors
- at Install(precedence=BUILT_IN)
-public class GWTToSeamAdapter {
-
- /** A very simple cache of previously looked up methods */
- private final Map METHOD_CACHE = new HashMap();
-
- public static GWTToSeamAdapter instance()
- {
- GWTToSeamAdapter adapter = (GWTToSeamAdapter) Component.getInstance(GWTToSeamAdapter.class);
-
- if (adapter == null)
- {
- throw new IllegalStateException("No GWTToSeamAdapter exists");
- }
-
- return adapter;
- }
-
- /**
- * Call the service.
- *
- * @param serviceIntfName
- * The interface name - this will be the fully qualified name of
- * the remote service interface as understood by GWT. This
- * correlates to a component name in seam.
- * @param methodName
- * The method name of the service being invoked.
- * @param paramTypes
- * The types of parameters - needed for method lookup for
- * polymorphism.
- * @param args
- * The values to be passed to the service method.
- * @return A populated ReturnedObject - the returned object payload may be
- * null, but the type will not be.
- * @throws InvocationTargetException
- * @throws IllegalAccessException
- */
- public ReturnedObject callWebRemoteMethod(String serviceIntfName,
- String methodName, Class[] paramTypes, Object[] args)
- throws InvocationTargetException, IllegalAccessException,
- SecurityException {
-
- // Find the component we're calling
- Component component = Component.forName(serviceIntfName);
-
- if (component == null)
- throw new RuntimeException("No such component: " + serviceIntfName);
-
- Object instance = getServiceComponent(serviceIntfName);
- Class clz = null;
-
- if (component.getType().isSessionBean()
- && component.getBusinessInterfaces().size() > 0) {
- for (Class c : component.getBusinessInterfaces()) {
- if (c.isAnnotationPresent(EJB.LOCAL)) {
- clz = c;
- break;
- }
- }
-
- if (clz == null)
- throw new RuntimeException(
- String
- .format(
- "Type cannot be determined for component [%s]. Please ensure that it has a local interface.",
- component));
- }
-
- if (clz == null)
- clz = component.getBeanClass();
-
- Method method = getMethod(serviceIntfName, methodName, clz, paramTypes);
-
- Object result = method.invoke(instance, args);
- return new ReturnedObject(method.getReturnType(), result);
- }
-
- /**
- * Get the method on the class, including walking up the class heirarchy if
- * needed. Methods have to be marked as "@WebRemote" to be allowed.
- *
- * @param methodName
- * @param clz
- * @param paramTypes
- */
- private Method getMethod(String serviceName, String methodName, Class clz,
- Class[] paramTypes) {
- String key = getKey(serviceName, methodName, paramTypes);
- if (METHOD_CACHE.containsKey(key)) {
- return (Method) METHOD_CACHE.get(key);
- } else {
- try {
- synchronized (METHOD_CACHE) {
- Method m = findMethod(clz, methodName, paramTypes);
- if (m == null)
- throw new NoSuchMethodException();
- METHOD_CACHE.put(key, m);
- return m;
- }
-
- } catch (NoSuchMethodException e) {
- throw new SecurityException(
- "Unable to access a service method called ["
- + methodName
- + "] on class ["
- + clz.getName()
- + "] without the @WebRemote attribute. "
- + "This may be a hack attempt, or someone simply neglected to use the @WebRemote attribute to indicate a method as"
- + " remotely accessible.");
- }
- }
- }
-
- private String getKey(String serviceName, String methodName,
- Class[] paramTypes) {
- if (paramTypes == null) {
- return serviceName + "." + methodName;
- } else {
- String pTypes = "";
- for (int i = 0; i < paramTypes.length; i++) {
- pTypes += paramTypes[i].getName();
- }
- return serviceName + "." + methodName + "(" + pTypes + ")";
- }
-
- }
-
- /**
- * Recurse up the class hierarchy, looking for a compatable method that is
- * marked as "@WebRemote". If one is not found (or we hit Object.class) then
- * we barf - basically trust nothing from the client other then what we want
- * to allow them to call.
- */
- private Method findMethod(Class clz, String methodName, Class[] paramTypes)
- throws NoSuchMethodException {
- if (clz == Object.class) {
- return null;
- } else {
- Method m = clz.getMethod(methodName, paramTypes);
- if (isWebRemoteAnnotated(m)) {
- return m;
- } else {
- return findMethod(clz.getSuperclass(), methodName, paramTypes);
- }
- }
- }
-
- /**
- * Only allow methods annotated with
- *
- * @WebRemote for security reasons.
- */
- private boolean isWebRemoteAnnotated(Method method) {
- if (method == null)
- return false;
- return method.getAnnotation(WebRemote.class) != null;
- }
-
- /**
- * Return the service component that has been bound to the given name.
- */
- protected Object getServiceComponent(String serviceIntfName) {
- return Component.getInstance(serviceIntfName);
- }
-
- /**
- * This is used for returning results to the GWT service endpoint. The class
- * is needed even if the result is null. a void.class responseType is
- * perfectly acceptable.
- *
- * @author Michael Neale
- */
- static class ReturnedObject {
- public ReturnedObject(Class type, Object result) {
- this.returnType = type;
- this.returnedObject = result;
- }
-
- public Class returnType;
-
- public Object returnedObject;
- }
-
-}
Index: src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java
===================================================================
--- src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java (revision 9989)
+++ src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java (working copy)
@@ -1,47 +0,0 @@
-package org.jboss.seam.remoting.gwt;
-
-import com.google.gwt.user.server.rpc.SerializationPolicy;
-
-import java.lang.reflect.Method;
-
-/**
- * @author Tomaz Cerar
- * @version $Revision$
- * @modifiedBy $Author$
- * @modified $Date$
- */
-public class SeamRPCRequest
-{
- private final java.lang.reflect.Method method;
- private final java.lang.Object[] parameters;
- private final Class[] parameterTypes;
- private final com.google.gwt.user.server.rpc.SerializationPolicy serializationPolicy;
-
- public SeamRPCRequest(Method method, Object[] parameters,
- Class[] parameterTypes, SerializationPolicy serializationPolicy) {
- this.method = method;
- this.parameters = parameters;
- this.parameterTypes = parameterTypes;
- this.serializationPolicy = serializationPolicy;
- }
-
- public Method getMethod()
- {
- return method;
- }
-
- public Object[] getParameters()
- {
- return parameters;
- }
-
- public Class[] getParameterTypes()
- {
- return parameterTypes;
- }
-
- public SerializationPolicy getSerializationPolicy()
- {
- return serializationPolicy;
- }
-}
Index: src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java
===================================================================
--- src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java (revision 9989)
+++ src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java (working copy)
@@ -1,113 +0,0 @@
-package org.jboss.seam.remoting.gwt;
-
-import static org.jboss.seam.ScopeType.APPLICATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-
-import com.google.gwt.user.client.rpc.SerializationException;
-import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader;
-import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter;
-
-/**
- *
- * @author Shane Bryzak
- */
- at Scope(APPLICATION)
- at Name("org.jboss.seam.remoting.gwt.gwtRemoteService")
- at Install(precedence = BUILT_IN, classDependencies = {"com.google.gwt.user.client.rpc.RemoteService"})
- at BypassInterceptors
-public class GWT14Service extends GWTService
-{
- private static final String SERIALIZATION_POLICY_PROVIDER_CLASS = "com.google.gwt.user.server.rpc.SerializationPolicyProvider";
-
- private static final String SERIALIZATION_POLICY_CLASS = "com.google.gwt.user.server.rpc.SerializationPolicy";
- private static final String LEGACY_SERIALIZATION_POLICY_CLASS = "com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy";
-
-
- private Constructor streamReaderConstructor;
- private Constructor streamWriterConstructor;
-
- private Object legacySerializationPolicy;
-
- @Create
- public void startup() throws Exception
- {
- try
- {
- log.trace("GWT14Service starting up");
-
- Class policyProviderClass = Class.forName(SERIALIZATION_POLICY_PROVIDER_CLASS);
- Class serializationPolicyClass = Class.forName(SERIALIZATION_POLICY_CLASS);
-
- streamReaderConstructor = ServerSerializationStreamReader.class.getConstructor(
- new Class[] { ClassLoader.class, policyProviderClass } );
- streamWriterConstructor = ServerSerializationStreamWriter.class.getConstructor(
- new Class[] { serializationPolicyClass } );
-
- Class legacySerializationPolicyClass = Class.forName(LEGACY_SERIALIZATION_POLICY_CLASS);
- Method m = legacySerializationPolicyClass.getDeclaredMethod("getInstance");
- legacySerializationPolicy = m.invoke(null);
- }
- catch (Exception ex)
- {
- log.error("Error initializing GWT14Service. Please ensure " +
- "the GWT 1.4 libraries are in the classpath.");
- throw ex;
- }
- }
-
- @Override
- protected String createResponse(ServerSerializationStreamWriter stream,
- Class responseType, Object responseObj, boolean isException)
- {
- stream.prepareToWrite();
- if (responseType != void.class)
- {
- try
- {
- stream.serializeValue(responseObj, responseType);
- } catch (SerializationException e)
- {
- responseObj = e;
- isException = true;
- }
- }
-
- return (isException ? "//EX" : "//OK") + stream.toString();
- }
-
- @Override
- public ServerSerializationStreamReader getStreamReader()
- {
- try
- {
- return (ServerSerializationStreamReader) streamReaderConstructor.newInstance(
- Thread.currentThread().getContextClassLoader(), null);
- }
- catch (Exception ex)
- {
- throw new RuntimeException("Unable to create stream reader", ex);
- }
- }
-
- @Override
- public ServerSerializationStreamWriter getStreamWriter()
- {
- try
- {
- return (ServerSerializationStreamWriter) streamWriterConstructor.newInstance(legacySerializationPolicy);
- }
- catch (Exception ex)
- {
- throw new RuntimeException("Unable to create stream writer", ex);
- }
- }
-}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 19:57:44 2009
From: jira-events at lists.jboss.org (Nicolae Tabusca (JIRA))
Date: Fri, 30 Jan 2009 19:57:44 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3924) This patch
adds full integration of seam with gwt 1.5.
In-Reply-To: <3370166.1233363104171.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <2138888.1233363464183.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicolae Tabusca updated JBSEAM-3924:
------------------------------------
Attachment: GWTService.java
New GWTService implementation
> This patch adds full integration of seam with gwt 1.5.
> ------------------------------------------------------
>
> Key: JBSEAM-3924
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3924
> Project: Seam
> Issue Type: Patch
> Components: GWT
> Affects Versions: 2.1.1.GA
> Environment: Any
> Reporter: Nicolae Tabusca
> Priority: Critical
> Fix For: 2.1.2.GA
>
> Attachments: GWTService.java
>
>
> ### Eclipse Workspace Patch 1.0
> #P jboss-seam
> Index: src/remoting/org/jboss/seam/remoting/gwt/GWTService.java
> ===================================================================
> --- src/remoting/org/jboss/seam/remoting/gwt/GWTService.java (revision 9989)
> +++ src/remoting/org/jboss/seam/remoting/gwt/GWTService.java (working copy)
> @@ -1,976 +1,178 @@
> package org.jboss.seam.remoting.gwt;
>
> +import static org.jboss.seam.ScopeType.APPLICATION;
> +import static org.jboss.seam.annotations.Install.BUILT_IN;
> +
> import java.io.IOException;
> -import java.io.InputStream;
> -import java.lang.reflect.InvocationTargetException;
> import java.lang.reflect.Method;
> -import java.net.MalformedURLException;
> -import java.net.URL;
> -import java.text.ParseException;
> -import java.util.Arrays;
> -import java.util.HashMap;
> -import java.util.Map;
>
> import javax.servlet.ServletContext;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> -import org.jboss.seam.core.ConversationPropagation;
> +import org.jboss.seam.Component;
> +import org.jboss.seam.annotations.Install;
> +import org.jboss.seam.annotations.Name;
> +import org.jboss.seam.annotations.Scope;
> +import org.jboss.seam.annotations.intercept.BypassInterceptors;
> +import org.jboss.seam.annotations.remoting.WebRemote;
> +import org.jboss.seam.contexts.ServletLifecycle;
> import org.jboss.seam.log.LogProvider;
> import org.jboss.seam.log.Logging;
> import org.jboss.seam.servlet.ContextualHttpServletRequest;
> +import org.jboss.seam.util.EJB;
> import org.jboss.seam.web.AbstractResource;
>
> import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
> -import com.google.gwt.user.client.rpc.RemoteService;
> import com.google.gwt.user.client.rpc.SerializationException;
> import com.google.gwt.user.server.rpc.RPC;
> import com.google.gwt.user.server.rpc.RPCRequest;
> -import com.google.gwt.user.server.rpc.RPCServletUtils;
> import com.google.gwt.user.server.rpc.RemoteServiceServlet;
> -import com.google.gwt.user.server.rpc.SerializationPolicy;
> -import com.google.gwt.user.server.rpc.SerializationPolicyLoader;
> -import com.google.gwt.user.server.rpc.SerializationPolicyProvider;
> -import com.google.gwt.user.server.rpc.UnexpectedException;
> import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader;
> -import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter;
>
> /**
> - * Abstract base class for GWT 1.5 integration.
> + * GWT integration.
> *
> - * @author Shane Bryzak
> + * @author Nicolae Tabusca
> */
> -public abstract class GWTService extends AbstractResource implements SerializationPolicyProvider
> -{
> - protected static final LogProvider log = Logging.getLogProvider(GWTService.class);
> + at Scope(APPLICATION)
> + at Name("org.jboss.seam.remoting.gwt.gwtRemoteService")
> + at Install(precedence = BUILT_IN, classDependencies = {"com.google.gwt.user.client.rpc.RemoteService"})
> + at BypassInterceptors
> +public class GWTService extends AbstractResource {
> +
> + protected static final LogProvider log
> + = Logging.getLogProvider(GWTService.class);
>
> - private static final HashMap> TYPE_NAMES;
> + public GWTService() {
> + }
>
> - static
> - {
> - TYPE_NAMES = new HashMap>();
> - TYPE_NAMES.put("Z", boolean.class);
> - TYPE_NAMES.put("B", byte.class);
> - TYPE_NAMES.put("C", char.class);
> - TYPE_NAMES.put("D", double.class);
> - TYPE_NAMES.put("F", float.class);
> - TYPE_NAMES.put("I", int.class);
> - TYPE_NAMES.put("J", long.class);
> - TYPE_NAMES.put("S", short.class);
> + @Override
> + public String getResourcePath() {
> + return "/gwt";
> + }
>
> - }
> -
> - /**
> - * A cache of moduleBaseURL and serialization policy strong name to
> - * {@link SerializationPolicy}.
> - */
> - private final Map serializationPolicyCache = new HashMap();
> + /**
> + * This is called internally.
> + *
> + * @see RemoteServiceServlet#doPost
> + */
> + @Override
> + public final void getResource(final HttpServletRequest request,
> + final HttpServletResponse response)
> + throws ServletException, IOException {
>
> - @Override
> - public String getResourcePath()
> - {
> - return "/gwt";
> - }
> + ContextualHttpServletRequest contextualRequest
> + = new ContextualHttpServletRequest(request) {
>
> - protected abstract ServerSerializationStreamReader getStreamReader();
> + private GWTController controller = new GWTController();
>
> - protected abstract ServerSerializationStreamWriter getStreamWriter();
> -
> - protected abstract String createResponse(
> - ServerSerializationStreamWriter stream, Class responseType,
> - Object responseObj, boolean isException);
> -
> - // private final Set knownImplementedInterfaces = new HashSet();
> - private final ThreadLocal perThreadRequest = new ThreadLocal();
> -
> - private final ThreadLocal perThreadResponse = new ThreadLocal();
> -
> - /**
> - * This is called internally.
> - *
> - * @see RemoteServiceServlet#doPost
> - */
> - @Override
> - public final void getResource(final HttpServletRequest request,
> - final HttpServletResponse response) throws ServletException,
> - IOException
> - {
> - try
> - {
> - // Store the request & response objects in thread-local storage.
> - perThreadRequest.set(request);
> - perThreadResponse.set(response);
> -
> - new ContextualHttpServletRequest(request) {
> @Override
> - public void process() throws Exception
> - {
> -
> - try
> - {
> - // Read the request fully.
> - //
> - String requestPayload = RemoteServiceServlet_readContent(request);
> -
> - RemoteServiceServlet_onBeforeRequestDeserialized(requestPayload);
> -
> - // Invoke the core dispatching logic, which returns the
> - // serialized result
> - String responsePayload = processCall(requestPayload);
> -
> - RemoteServiceServlet_onAfterResponseSerialized(responsePayload);
> -
> - // Write the response.
> - //
> - RemoteServiceServlet_writeResponse(request, response,
> - responsePayload);
> -
> - } catch (Throwable e)
> - {
> - RemoteServiceServlet_doUnexpectedFailure(e);
> - }
> -
> + public void process() throws Exception {
> +
> + controller.service(request, response);
> }
> + };
>
> - @Override
> - protected void restoreConversationId()
> - {
> - ConversationPropagation.instance().setConversationId(
> - GWTService.this.perThreadRequest.get().getParameter(
> - "conversationId"));
> - }
> + contextualRequest.run();
>
> - @Override
> - protected void handleConversationPropagation()
> - {
> - }
> - }.run();
> - } finally
> - {
> - perThreadRequest.remove();
> - perThreadResponse.remove();
> - }
> - }
> + }
>
> - /**
> - * This is public so that it can be unit tested easily without HTTP.
> - */
> - public String processCall(String payload) throws SerializationException
> - {
> - // Create a stream to deserialize the request.
> - //
> - // ServerSerializationStreamReader streamReader = getStreamReader();
> - // streamReader.prepareToRead(payload);
> - //
> - // // Read the service interface
> - // //
> - // String serviceIntfName = streamReader.readString();
> - //
> - // // Read the method name.
> - // //
> - // String methodName = streamReader.readString();
> - //
> - // // Read the number and names of the parameter classes from the stream.
> - // // We have to do this so that we can find the correct overload of the
> - // // method.
> - // //
> - // int paramCount = streamReader.readInt();
> - // Class[] paramTypes = new Class[paramCount];
> - // for (int i = 0; i < paramTypes.length; i++)
> - // {
> - // String paramClassName = streamReader.readString();
> - // try
> - // {
> - // paramTypes[i] = getClassOrPrimitiveFromName(paramClassName);
> - // } catch (ClassNotFoundException e)
> - // {
> - // throw new SerializationException("Unknown parameter " + i
> - // + " type '" + paramClassName + "'", e);
> - // }
> - // }
> - //
> - // // Deserialize the parameters.
> - // //
> - // Object[] args = new Object[paramCount];
> - // for (int i = 0; i < args.length; i++)
> - // {
> - // args[i] = streamReader.deserializeValue(paramTypes[i]);
> - // }
> + @SuppressWarnings("serial")
> + private class GWTController extends RemoteServiceServlet {
>
> - try
> - {
> - SeamRPCRequest rpcRequest = RPC_decodeRequest(payload,
> - this.getClass(), this);
> + @Override
> + public ServletContext getServletContext() {
> + return ServletLifecycle.getServletContext();
> + }
> +
> +
> + @Override
> + @SuppressWarnings("unchecked")
> + public String processCall(String payload) throws SerializationException {
> + try {
> + Component remoteService = getRemoteServiceComponent(payload);
> +
> + Class beanClass = remoteService.getBeanClass();
> + RPCRequest rpcRequest = RPC.decodeRequest(payload, beanClass, this);
>
> - return RPC_invokeAndEncodeResponse(this, rpcRequest.getMethod(),
> - rpcRequest.getParameterTypes(), rpcRequest.getParameters(),
> - rpcRequest.getSerializationPolicy());
> - } catch (IncompatibleRemoteServiceException ex)
> - {
> - getServletContext()
> - .log(
> - "An IncompatibleRemoteServiceException was thrown while processing this call.",
> - ex);
> - return RPC.encodeResponseForFailure(null, ex);
> - }
> + Method serviceDef = rpcRequest.getMethod();
> + Method serviceImpl = beanClass.getMethod(serviceDef.getName(),
> + serviceDef.getParameterTypes());
> + if (isWebRemoteAnnotated(serviceImpl) == false) {
> + throw new RuntimeException(
> + "Unable to access a service method called ["
> + + serviceImpl.getName() + "] on class ["
> + + beanClass.getName()
> + + "] without the @WebRemote attribute. ");
> + }
>
> - // Make the call via reflection.
> - //
> - // String responsePayload = GENERIC_FAILURE_MSG;
> - // ServerSerializationStreamWriter streamWriter = getStreamWriter();
> - // Throwable caught = null;
> - // try
> - // {
> - // GWTToSeamAdapter.ReturnedObject returnedObject =
> - // adapter.callWebRemoteMethod(
> - // serviceIntfName, methodName, paramTypes, args);
> - // Class returnType = returnedObject.returnType;
> - // Object returnVal = returnedObject.returnedObject;
> - // // Class returnType = serviceIntfMethod.getReturnType();
> - // // Object returnVal = serviceIntfMethod.invoke(this, args);
> - // responsePayload = createResponse(streamWriter, returnType, returnVal,
> - // false);
> - // } catch (IllegalArgumentException e)
> - // {
> - // caught = e;
> - // } catch (IllegalAccessException e)
> - // {
> - // caught = e;
> - // } catch (InvocationTargetException e)
> - // {
> - // // Try to serialize the caught exception if the client is expecting it,
> - // // otherwise log the exception server-side.
> - // caught = e;
> - // Throwable cause = e.getCause();
> - // if (cause != null)
> - // {
> - // // Update the caught exception to the underlying cause
> - // caught = cause;
> - // // Serialize the exception back to the client if it's a declared
> - // // exception
> - // if (cause instanceof SerializableException)
> - // {
> - // Class thrownClass = cause.getClass();
> - // responsePayload = createResponse(streamWriter, thrownClass,
> - // cause, true);
> - // // Don't log the exception on the server
> - // caught = null;
> - // }
> - // }
> - // }
> - //
> - // if (caught != null)
> - // {
> - // responsePayload = GENERIC_FAILURE_MSG;
> - // ServletContext servletContext = getServletContext();
> - // // servletContext may be null (for example, when unit testing)
> - // if (servletContext != null)
> - // {
> - // // Log the exception server side
> - // servletContext.log("Exception while dispatching incoming RPC call",
> - // caught);
> - // }
> - // }
> - }
> + return RPC.invokeAndEncodeResponse(
> + Component.getInstance(remoteService.getName()),
> + rpcRequest.getMethod(), rpcRequest.getParameters(),
> + rpcRequest.getSerializationPolicy());
>
> - /**
> - * Gets the HttpServletRequest
object for the current call. It
> - * is stored thread-locally so that simultaneous invocations can have
> - * different request objects.
> - */
> - protected final HttpServletRequest getThreadLocalRequest()
> - {
> - return perThreadRequest.get();
> - }
> -
> - /**
> - * Gets the HttpServletResponse
object for the current call. It
> - * is stored thread-locally so that simultaneous invocations can have
> - * different response objects.
> - */
> - protected final HttpServletResponse getThreadLocalResponse()
> - {
> - return perThreadResponse.get();
> - }
> -
> - /**
> - * Returns an {@link RPCRequest} that is built by decoding the contents of an
> - * encoded RPC request and optionally validating that type can handle the
> - * request. If the type parameter is not null
, the
> - * implementation checks that the type is assignable to the
> - * {@link com.google.gwt.user.client.rpc.RemoteService} interface requested
> - * in the encoded request string.
> - *
> - *
> - * If the serializationPolicyProvider parameter is not null
, it
> - * is asked for a {@link SerializationPolicy} to use to restrict the set of
> - * types that can be decoded from the request. If this parameter is
> - * null
, then only subtypes of
> - * {@link com.google.gwt.user.client.rpc.IsSerializable IsSerializable} or
> - * types which have custom field serializers can be decoded.
> - *
> - *
> - *
> - * Invoking this method with null
for the type parameter,
> - * decodeRequest(encodedRequest, null)
, is equivalent to calling
> - * decodeRequest(encodedRequest)
.
> - *
> - *
> - * @param encodedRequest
> - * a string that encodes the
> - * {@link com.google.gwt.user.client.rpc.RemoteService} interface,
> - * the service method, and the arguments to pass to the service
> - * method
> - * @param type
> - * if not null
, the implementation checks that the
> - * type is assignable to the
> - * {@link com.google.gwt.user.client.rpc.RemoteService} interface
> - * encoded in the encoded request string.
> - * @param serializationPolicyProvider
> - * if not null
, the implementation asks this provider
> - * for a {@link SerializationPolicy} which will be used to restrict
> - * the set of types that can be decoded from this request
> - * @return an {@link RPCRequest} instance
> - *
> - * @throws NullPointerException
> - * if the encodedRequest is null
> - * @throws IllegalArgumentException
> - * if the encodedRequest is an empty string
> - * @throws IncompatibleRemoteServiceException
> - * if any of the following conditions apply:
> - *
> - * - if the types in the encoded request cannot be deserialized
> - * - if the {@link ClassLoader} acquired from
> - *
Thread.currentThread().getContextClassLoader()
> - * cannot load the service interface or any of the types specified
> - * in the encodedRequest
> - * - the requested interface is not assignable to
> - * {@link com.google.gwt.user.client.rpc.RemoteService}
> - * - the service method requested in the encodedRequest is not a
> - * member of the requested service interface
> - * - the type parameter is not
null
and is not
> - * assignable to the requested
> - * {@link com.google.gwt.user.client.rpc.RemoteService} interface
> - *
> - */
> - public static SeamRPCRequest RPC_decodeRequest(String encodedRequest,
> - Class> type, SerializationPolicyProvider serializationPolicyProvider)
> - {
> - if (encodedRequest == null)
> - {
> - throw new NullPointerException("encodedRequest cannot be null");
> - }
> -
> - if (encodedRequest.length() == 0)
> - {
> - throw new IllegalArgumentException("encodedRequest cannot be empty");
> - }
> -
> - ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
> -
> - try
> - {
> - ServerSerializationStreamReader streamReader = new ServerSerializationStreamReader(
> - classLoader, serializationPolicyProvider);
> - streamReader.prepareToRead(encodedRequest);
> -
> - // Read the name of the RemoteService interface
> - String serviceIntfName = streamReader.readString();
> -
> - /*
> - * todo?? if (type != null) { if (!implementsInterface(type,
> - * serviceIntfName)) { // The service does not implement the requested
> - * interface throw new IncompatibleRemoteServiceException(
> - * "Blocked attempt to access interface '" + serviceIntfName +
> - * "', which is not implemented by '" + printTypeName(type) +
> - * "'; this is either misconfiguration or a hack attempt"); } }
> - */
> -
> - SerializationPolicy serializationPolicy = streamReader
> - .getSerializationPolicy();
> - Class> serviceIntf;
> - try
> - {
> - serviceIntf = RPC_getClassFromSerializedName(serviceIntfName,
> - classLoader);
> - if (!RemoteService.class.isAssignableFrom(serviceIntf))
> - {
> - // The requested interface is not a RemoteService interface
> - throw new IncompatibleRemoteServiceException(
> - "Blocked attempt to access interface '"
> - + printTypeName(serviceIntf)
> - + "', which doesn't extend RemoteService; this is either misconfiguration or a hack attempt");
> + } catch (IncompatibleRemoteServiceException ex) {
> + log.error(ex.getMessage(), ex);
> + return RPC.encodeResponseForFailure(null, ex);
> + } catch (SecurityException e) {
> + log.error(e.getMessage(), e);
> + return RPC.encodeResponseForFailure(null, e);
> + } catch (NoSuchMethodException e) {
> + log.error(e.getMessage(), e);
> + return RPC.encodeResponseForFailure(null, e);
> }
> - } catch (ClassNotFoundException e)
> - {
> - throw new IncompatibleRemoteServiceException(
> - "Could not locate requested interface '" + serviceIntfName
> - + "' in default classloader", e);
> - }
> + }
>
> - String serviceMethodName = streamReader.readString();
> + @SuppressWarnings("unchecked")
> + private Component getRemoteServiceComponent(String payload)
> + throws SerializationException {
>
> - int paramCount = streamReader.readInt();
> - Class>[] parameterTypes = new Class[paramCount];
> + ClassLoader classLoader = Thread.currentThread()
> + .getContextClassLoader();
> + ServerSerializationStreamReader streamReader
> + = new ServerSerializationStreamReader(classLoader, this);
>
> - for (int i = 0; i < parameterTypes.length; i++)
> - {
> - String paramClassName = streamReader.readString();
> - try
> - {
> - parameterTypes[i] = RPC_getClassFromSerializedName(
> - paramClassName, classLoader);
> - } catch (ClassNotFoundException e)
> - {
> - throw new IncompatibleRemoteServiceException("Parameter " + i
> - + " of is of an unknown type '" + paramClassName + "'", e);
> - }
> - }
> + streamReader.prepareToRead(payload);
>
> - try
> - {
> - Method method = serviceIntf.getMethod(serviceMethodName,
> - parameterTypes);
> + // Read the name of the RemoteService interface
> + String serviceIntfName = streamReader.readString();
>
> - Object[] parameterValues = new Object[parameterTypes.length];
> - for (int i = 0; i < parameterValues.length; i++)
> - {
> - parameterValues[i] = streamReader
> - .deserializeValue(parameterTypes[i]);
> + Component component = Component.forName(serviceIntfName);
> + if (null == component) {
> + throw new RuntimeException("No such component: "
> + + serviceIntfName);
> }
>
> - return new SeamRPCRequest(method, parameterValues, parameterTypes,
> - serializationPolicy);
> + if (component.getType().isSessionBean()
> + && component.getBusinessInterfaces().size() > 0) {
>
> - } catch (NoSuchMethodException e)
> - {
> - throw new IncompatibleRemoteServiceException(
> - formatMethodNotFoundErrorMessage(serviceIntf,
> - serviceMethodName, parameterTypes));
> - }
> - } catch (SerializationException ex)
> - {
> - throw new IncompatibleRemoteServiceException(ex.getMessage(), ex);
> - }
> - }
> + boolean localDefined = false;
> + for (Class c : component.getBusinessInterfaces()) {
> + if (c.isAnnotationPresent(EJB.LOCAL)) {
> + localDefined = true;
> + break;
> + }
> + }
>
> - /**
> - * Returns the {@link Class} instance for the named class or primitive type.
> - *
> - * @param serializedName
> - * the serialized name of a class or primitive type
> - * @param classLoader
> - * the classLoader used to load {@link Class}es
> - * @return Class instance for the given type name
> - * @throws ClassNotFoundException
> - * if the named type was not found
> - */
> - private static Class> RPC_getClassFromSerializedName(
> - String serializedName, ClassLoader classLoader)
> - throws ClassNotFoundException
> - {
> - Class> value = TYPE_NAMES.get(serializedName);
> - if (value != null)
> - {
> - return value;
> - }
> -
> - return Class.forName(serializedName, false, classLoader);
> - }
> -
> - /**
> - * Returns a string that encodes the result of calling a service method,
> - * which could be the value returned by the method or an exception thrown by
> - * it.
> - *
> - *
> - * If the serializationPolicy parameter is not null
, it is used
> - * to determine what types can be encoded as part of this response. If this
> - * parameter is null
, then only subtypes of
> - * {@link com.google.gwt.user.client.rpc.IsSerializable IsSerializable} or
> - * types which have custom field serializers may be encoded.
> - *
> - *
> - *
> - * This method does no security checking; security checking must be done on
> - * the method prior to this invocation.
> - *
> - *
> - * @param target
> - * instance on which to invoke the serviceMethod
> - * @param serviceMethod
> - * the method to invoke
> - * @param args
> - * arguments used for the method invocation
> - * @param serializationPolicy
> - * determines the serialization policy to be used
> - * @return a string which encodes either the method's return or a checked
> - * exception thrown by the method
> - *
> - * @throws NullPointerException
> - * if the serviceMethod or the serializationPolicy are
> - * null
> - * @throws SecurityException
> - * if the method cannot be accessed or if the number or type of
> - * actual and formal arguments differ
> - * @throws SerializationException
> - * if an object could not be serialized by the stream
> - * @throws UnexpectedException
> - * if the serviceMethod throws a checked exception that is not
> - * declared in its signature
> - */
> - public static String RPC_invokeAndEncodeResponse(Object target,
> - Method serviceMethod, Class[] paramTypes, Object[] args,
> - SerializationPolicy serializationPolicy) throws SerializationException
> - {
> - if (serviceMethod == null)
> - {
> - throw new NullPointerException("serviceMethod");
> - }
> -
> - if (serializationPolicy == null)
> - {
> - throw new NullPointerException("serializationPolicy");
> - }
> -
> - String responsePayload;
> - try
> - {
> - GWTToSeamAdapter adapter = GWTToSeamAdapter.instance();
> -
> - String serviceIntfName = serviceMethod.getDeclaringClass().getName();
> -
> - GWTToSeamAdapter.ReturnedObject returnedObject = adapter
> - .callWebRemoteMethod(serviceIntfName, serviceMethod.getName(),
> - paramTypes, args);
> -
> - // Object result = serviceMethod.invoke(target, args);
> -
> - responsePayload = RPC.encodeResponseForSuccess(serviceMethod,
> - returnedObject.returnedObject, serializationPolicy);
> - } catch (IllegalAccessException e)
> - {
> - SecurityException securityException = new SecurityException(
> - formatIllegalAccessErrorMessage(target, serviceMethod));
> - securityException.initCause(e);
> - throw securityException;
> - } catch (IllegalArgumentException e)
> - {
> - SecurityException securityException = new SecurityException(
> - formatIllegalArgumentErrorMessage(target, serviceMethod, args));
> - securityException.initCause(e);
> - throw securityException;
> - } catch (InvocationTargetException e)
> - {
> - // Try to encode the caught exception
> - //
> - Throwable cause = e.getCause();
> -
> - responsePayload = RPC.encodeResponseForFailure(serviceMethod, cause,
> - serializationPolicy);
> - }
> -
> - return responsePayload;
> - }
> -
> - /**
> - * Override this method to examine the serialized response that will be
> - * returned to the client. The default implementation does nothing and need
> - * not be called by subclasses.
> - */
> - protected void RemoteServiceServlet_onAfterResponseSerialized(
> - String serializedResponse)
> - {
> - }
> -
> - /**
> - * Override this method to examine the serialized version of the request
> - * payload before it is deserialized into objects. The default implementation
> - * does nothing and need not be called by subclasses.
> - */
> - protected void RemoteServiceServlet_onBeforeRequestDeserialized(
> - String serializedRequest)
> - {
> - }
> -
> - /**
> - * Override this method in order to control the parsing of the incoming
> - * request. For example, you may want to bypass the check of the Content-Type
> - * and character encoding headers in the request, as some proxies re-write
> - * the request headers. Note that bypassing these checks may expose the
> - * servlet to some cross-site vulnerabilities.
> - *
> - * @param request
> - * the incoming request
> - * @return the content of the incoming request encoded as a string.
> - */
> - protected String RemoteServiceServlet_readContent(HttpServletRequest request)
> - throws ServletException, IOException
> - {
> - return RPCServletUtils.readContentAsUtf8(request, true);
> - }
> -
> - public final SerializationPolicy getSerializationPolicy(
> - String moduleBaseURL, String strongName)
> - {
> -
> - SerializationPolicy serializationPolicy = getCachedSerializationPolicy(
> - moduleBaseURL, strongName);
> - if (serializationPolicy != null)
> - {
> - return serializationPolicy;
> - }
> -
> - serializationPolicy = doGetSerializationPolicy(getThreadLocalRequest(),
> - moduleBaseURL, strongName);
> -
> - if (serializationPolicy == null)
> - {
> - // Failed to get the requested serialization policy; use the default
> - getServletContext()
> - .log(
> - "WARNING: Failed to get the SerializationPolicy '"
> - + strongName
> - + "' for module '"
> - + moduleBaseURL
> - + "'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.");
> - serializationPolicy = RPC.getDefaultSerializationPolicy();
> - }
> -
> - // This could cache null or an actual instance. Either way we will not
> - // attempt to lookup the policy again.
> - putCachedSerializationPolicy(moduleBaseURL, strongName,
> - serializationPolicy);
> -
> - return serializationPolicy;
> - }
> -
> - private SerializationPolicy getCachedSerializationPolicy(
> - String moduleBaseURL, String strongName)
> - {
> - synchronized (serializationPolicyCache)
> - {
> - return serializationPolicyCache.get(moduleBaseURL + strongName);
> - }
> - }
> -
> - private void putCachedSerializationPolicy(String moduleBaseURL,
> - String strongName, SerializationPolicy serializationPolicy)
> - {
> - synchronized (serializationPolicyCache)
> - {
> - serializationPolicyCache.put(moduleBaseURL + strongName,
> - serializationPolicy);
> - }
> - }
> -
> - /**
> - * Gets the {@link SerializationPolicy} for given module base URL and strong
> - * name if there is one.
> - *
> - * Override this method to provide a {@link SerializationPolicy} using an
> - * alternative approach.
> - *
> - * @param request
> - * the HTTP request being serviced
> - * @param moduleBaseURL
> - * as specified in the incoming payload
> - * @param strongName
> - * a strong name that uniquely identifies a serialization policy
> - * file
> - * @return a {@link SerializationPolicy} for the given module base URL and
> - * strong name, or null
if there is none
> - */
> - protected SerializationPolicy doGetSerializationPolicy(
> - HttpServletRequest request, String moduleBaseURL, String strongName)
> - {
> - // The request can tell you the path of the web app relative to the
> - // container root.
> - String contextPath = request.getContextPath();
> -
> - String modulePath = null;
> - if (moduleBaseURL != null)
> - {
> - try
> - {
> - modulePath = new URL(moduleBaseURL).getPath();
> - } catch (MalformedURLException ex)
> - {
> - // log the information, we will default
> - getServletContext().log(
> - "Malformed moduleBaseURL: " + moduleBaseURL, ex);
> - }
> - }
> -
> - SerializationPolicy serializationPolicy = null;
> -
> - /*
> - * Check that the module path must be in the same web app as the servlet
> - * itself. If you need to implement a scheme different than this, override
> - * this method.
> - */
> - if (modulePath == null || !modulePath.startsWith(contextPath))
> - {
> - String message = "ERROR: The module path requested, "
> - + modulePath
> - + ", is not in the same web application as this servlet, "
> - + contextPath
> - + ". Your module may not be properly configured or your client and server code maybe out of date.";
> - getServletContext().log(message);
> - } else
> - {
> - // Strip off the context path from the module base URL. It should be a
> - // strict prefix.
> - String contextRelativePath = modulePath
> - .substring(contextPath.length());
> -
> - String serializationPolicyFilePath = SerializationPolicyLoader
> - .getSerializationPolicyFileName(contextRelativePath + strongName);
> -
> - // Open the RPC resource file read its contents.
> - InputStream is = getServletContext().getResourceAsStream(
> - serializationPolicyFilePath);
> - try
> - {
> - if (is != null)
> - {
> - try
> - {
> - serializationPolicy = SerializationPolicyLoader
> - .loadFromStream(is, null);
> - } catch (ParseException e)
> - {
> - getServletContext().log(
> - "ERROR: Failed to parse the policy file '"
> - + serializationPolicyFilePath + "'", e);
> - } catch (IOException e)
> - {
> - getServletContext().log(
> - "ERROR: Could not read the policy file '"
> - + serializationPolicyFilePath + "'", e);
> - }
> - } else
> - {
> - String message = "ERROR: The serialization policy file '"
> - + serializationPolicyFilePath
> - + "' was not found; did you forget to include it in this deployment?";
> - getServletContext().log(message);
> + if (localDefined == false) {
> + throw new RuntimeException(
> + String.format("Type cannot be determined for component [%s]. Please ensure that it has a local interface.",
> + component));
> + }
> }
> - } finally
> - {
> - if (is != null)
> - {
> - try
> - {
> - is.close();
> - } catch (IOException e)
> - {
> - // Ignore this error
> - }
> - }
> - }
> - }
> +
> + return component;
> + }
>
> - return serializationPolicy;
> - }
> -
> - private void RemoteServiceServlet_writeResponse(HttpServletRequest request,
> - HttpServletResponse response, String responsePayload)
> - throws IOException
> - {
> - boolean gzipEncode = RPCServletUtils.acceptsGzipEncoding(request)
> - && shouldCompressResponse(request, response, responsePayload);
> -
> - RPCServletUtils.writeResponse(getServletContext(), response,
> - responsePayload, gzipEncode);
> - }
> -
> - /**
> - * Override this method to control what should happen when an exception
> - * escapes the {@link #processCall(String)} method. The default
> - * implementation will log the failure and send a generic failure response to
> - * the client.
> - *
> - *
> - * An "expected failure" is an exception thrown by a service method that is
> - * declared in the signature of the service method. These exceptions are
> - * serialized back to the client, and are not passed to this method. This
> - * method is called only for exceptions or errors that are not part of the
> - * service method's signature, or that result from SecurityExceptions,
> - * SerializationExceptions, or other failures within the RPC framework.
> - *
> - *
> - * Note that if the desired behavior is to both send the GENERIC_FAILURE_MSG
> - * response AND to rethrow the exception, then this method should first send
> - * the GENERIC_FAILURE_MSG response itself (using getThreadLocalResponse),
> - * and then rethrow the exception. Rethrowing the exception will cause it to
> - * escape into the servlet container.
> - *
> - * @param e
> - * the exception which was thrown
> - */
> - protected void RemoteServiceServlet_doUnexpectedFailure(Throwable e)
> - {
> - ServletContext servletContext = getServletContext();
> - RPCServletUtils.writeResponseForUnexpectedFailure(servletContext,
> - getThreadLocalResponse(), e);
> - }
> -
> - /**
> - * Determines whether the response to a given servlet request should or
> - * should not be GZIP compressed. This method is only called in cases where
> - * the requester accepts GZIP encoding.
> - *
> - * This implementation currently returns true
if the response
> - * string's estimated byte length is longer than 256 bytes. Subclasses can
> - * override this logic.
> - *
> - *
> - * @param request
> - * the request being served
> - * @param response
> - * the response that will be written into
> - * @param responsePayload
> - * the payload that is about to be sent to the client
> - * @return true
if responsePayload should be GZIP compressed,
> - * otherwise false
.
> - */
> - protected boolean shouldCompressResponse(HttpServletRequest request,
> - HttpServletResponse response, String responsePayload)
> - {
> - return RPCServletUtils
> - .exceedsUncompressedContentLengthLimit(responsePayload);
> - }
> -
> - private static String formatMethodNotFoundErrorMessage(Class> serviceIntf,
> - String serviceMethodName, Class>[] parameterTypes)
> - {
> - StringBuffer sb = new StringBuffer();
> -
> - sb.append("Could not locate requested method '");
> - sb.append(serviceMethodName);
> - sb.append("(");
> - for (int i = 0; i < parameterTypes.length; ++i)
> - {
> - if (i > 0)
> - {
> - sb.append(", ");
> - }
> - sb.append(printTypeName(parameterTypes[i]));
> - }
> - sb.append(")'");
> -
> - sb.append(" in interface '");
> - sb.append(printTypeName(serviceIntf));
> - sb.append("'");
> -
> - return sb.toString();
> - }
> -
> - private static String formatIllegalAccessErrorMessage(Object target,
> - Method serviceMethod)
> - {
> - StringBuffer sb = new StringBuffer();
> - sb.append("Blocked attempt to access inaccessible method '");
> - sb.append(getSourceRepresentation(serviceMethod));
> - sb.append("'");
> -
> - if (target != null)
> - {
> - sb.append(" on target '");
> - sb.append(printTypeName(target.getClass()));
> - sb.append("'");
> - }
> -
> - sb.append("; this is either misconfiguration or a hack attempt");
> -
> - return sb.toString();
> - }
> -
> - private static String formatIllegalArgumentErrorMessage(Object target,
> - Method serviceMethod, Object[] args)
> - {
> - StringBuffer sb = new StringBuffer();
> - sb.append("Blocked attempt to invoke method '");
> - sb.append(getSourceRepresentation(serviceMethod));
> - sb.append("'");
> -
> - if (target != null)
> - {
> - sb.append(" on target '");
> - sb.append(printTypeName(target.getClass()));
> - sb.append("'");
> - }
> -
> - sb.append(" with invalid arguments");
> -
> - if (args != null && args.length > 0)
> - {
> - sb.append(Arrays.asList(args));
> - }
> -
> - return sb.toString();
> - }
> -
> - /**
> - * Returns the source representation for a method signature.
> - *
> - * @param method
> - * method to get the source signature for
> - * @return source representation for a method signature
> - */
> - private static String getSourceRepresentation(Method method)
> - {
> - return method.toString().replace('$', '.');
> - }
> -
> - /**
> - * Straight copy from
> - * {@link com.google.gwt.dev.util.TypeInfo#getSourceRepresentation(Class)} to
> - * avoid runtime dependency on gwt-dev.
> - */
> - private static String printTypeName(Class> type)
> - {
> - // Primitives
> - //
> - if (type.equals(Integer.TYPE))
> - {
> - return "int";
> - } else if (type.equals(Long.TYPE))
> - {
> - return "long";
> - } else if (type.equals(Short.TYPE))
> - {
> - return "short";
> - } else if (type.equals(Byte.TYPE))
> - {
> - return "byte";
> - } else if (type.equals(Character.TYPE))
> - {
> - return "char";
> - } else if (type.equals(Boolean.TYPE))
> - {
> - return "boolean";
> - } else if (type.equals(Float.TYPE))
> - {
> - return "float";
> - } else if (type.equals(Double.TYPE))
> - {
> - return "double";
> - }
> -
> - // Arrays
> - //
> - if (type.isArray())
> - {
> - Class> componentType = type.getComponentType();
> - return printTypeName(componentType) + "[]";
> - }
> -
> - // Everything else
> - //
> - return type.getName().replace('$', '.');
> - }
> -
> -}
> + /**
> + * Only allow methods annotated with @WebRemote for security reasons.
> + */
> + private boolean isWebRemoteAnnotated(Method method) {
> + if (method == null)
> + return false;
> + return method.getAnnotation(WebRemote.class) != null;
> + }
> + }
> +}
> \ No newline at end of file
> Index: src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java
> ===================================================================
> --- src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java (revision 9989)
> +++ src/remoting/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java (working copy)
> @@ -1,210 +0,0 @@
> -package org.jboss.seam.remoting.gwt;
> -
> -import static org.jboss.seam.ScopeType.APPLICATION;
> -import static org.jboss.seam.annotations.Install.BUILT_IN;
> -
> -import java.lang.reflect.InvocationTargetException;
> -import java.lang.reflect.Method;
> -import java.util.HashMap;
> -import java.util.Map;
> -
> -import org.jboss.seam.Component;
> -import org.jboss.seam.annotations.Install;
> -import org.jboss.seam.annotations.Name;
> -import org.jboss.seam.annotations.Scope;
> -import org.jboss.seam.annotations.intercept.BypassInterceptors;
> -import org.jboss.seam.annotations.remoting.WebRemote;
> -import org.jboss.seam.util.EJB;
> -
> -/**
> - * This class adapts GWT RPC mechanism to Seam actions.
> - *
> - * @author Michael Neale
> - */
> - at Scope(APPLICATION)
> - at Name("org.jboss.seam.remoting.gwt.gwtToSeamAdapter")
> - at BypassInterceptors
> - at Install(precedence=BUILT_IN)
> -public class GWTToSeamAdapter {
> -
> - /** A very simple cache of previously looked up methods */
> - private final Map METHOD_CACHE = new HashMap();
> -
> - public static GWTToSeamAdapter instance()
> - {
> - GWTToSeamAdapter adapter = (GWTToSeamAdapter) Component.getInstance(GWTToSeamAdapter.class);
> -
> - if (adapter == null)
> - {
> - throw new IllegalStateException("No GWTToSeamAdapter exists");
> - }
> -
> - return adapter;
> - }
> -
> - /**
> - * Call the service.
> - *
> - * @param serviceIntfName
> - * The interface name - this will be the fully qualified name of
> - * the remote service interface as understood by GWT. This
> - * correlates to a component name in seam.
> - * @param methodName
> - * The method name of the service being invoked.
> - * @param paramTypes
> - * The types of parameters - needed for method lookup for
> - * polymorphism.
> - * @param args
> - * The values to be passed to the service method.
> - * @return A populated ReturnedObject - the returned object payload may be
> - * null, but the type will not be.
> - * @throws InvocationTargetException
> - * @throws IllegalAccessException
> - */
> - public ReturnedObject callWebRemoteMethod(String serviceIntfName,
> - String methodName, Class[] paramTypes, Object[] args)
> - throws InvocationTargetException, IllegalAccessException,
> - SecurityException {
> -
> - // Find the component we're calling
> - Component component = Component.forName(serviceIntfName);
> -
> - if (component == null)
> - throw new RuntimeException("No such component: " + serviceIntfName);
> -
> - Object instance = getServiceComponent(serviceIntfName);
> - Class clz = null;
> -
> - if (component.getType().isSessionBean()
> - && component.getBusinessInterfaces().size() > 0) {
> - for (Class c : component.getBusinessInterfaces()) {
> - if (c.isAnnotationPresent(EJB.LOCAL)) {
> - clz = c;
> - break;
> - }
> - }
> -
> - if (clz == null)
> - throw new RuntimeException(
> - String
> - .format(
> - "Type cannot be determined for component [%s]. Please ensure that it has a local interface.",
> - component));
> - }
> -
> - if (clz == null)
> - clz = component.getBeanClass();
> -
> - Method method = getMethod(serviceIntfName, methodName, clz, paramTypes);
> -
> - Object result = method.invoke(instance, args);
> - return new ReturnedObject(method.getReturnType(), result);
> - }
> -
> - /**
> - * Get the method on the class, including walking up the class heirarchy if
> - * needed. Methods have to be marked as "@WebRemote" to be allowed.
> - *
> - * @param methodName
> - * @param clz
> - * @param paramTypes
> - */
> - private Method getMethod(String serviceName, String methodName, Class clz,
> - Class[] paramTypes) {
> - String key = getKey(serviceName, methodName, paramTypes);
> - if (METHOD_CACHE.containsKey(key)) {
> - return (Method) METHOD_CACHE.get(key);
> - } else {
> - try {
> - synchronized (METHOD_CACHE) {
> - Method m = findMethod(clz, methodName, paramTypes);
> - if (m == null)
> - throw new NoSuchMethodException();
> - METHOD_CACHE.put(key, m);
> - return m;
> - }
> -
> - } catch (NoSuchMethodException e) {
> - throw new SecurityException(
> - "Unable to access a service method called ["
> - + methodName
> - + "] on class ["
> - + clz.getName()
> - + "] without the @WebRemote attribute. "
> - + "This may be a hack attempt, or someone simply neglected to use the @WebRemote attribute to indicate a method as"
> - + " remotely accessible.");
> - }
> - }
> - }
> -
> - private String getKey(String serviceName, String methodName,
> - Class[] paramTypes) {
> - if (paramTypes == null) {
> - return serviceName + "." + methodName;
> - } else {
> - String pTypes = "";
> - for (int i = 0; i < paramTypes.length; i++) {
> - pTypes += paramTypes[i].getName();
> - }
> - return serviceName + "." + methodName + "(" + pTypes + ")";
> - }
> -
> - }
> -
> - /**
> - * Recurse up the class hierarchy, looking for a compatable method that is
> - * marked as "@WebRemote". If one is not found (or we hit Object.class) then
> - * we barf - basically trust nothing from the client other then what we want
> - * to allow them to call.
> - */
> - private Method findMethod(Class clz, String methodName, Class[] paramTypes)
> - throws NoSuchMethodException {
> - if (clz == Object.class) {
> - return null;
> - } else {
> - Method m = clz.getMethod(methodName, paramTypes);
> - if (isWebRemoteAnnotated(m)) {
> - return m;
> - } else {
> - return findMethod(clz.getSuperclass(), methodName, paramTypes);
> - }
> - }
> - }
> -
> - /**
> - * Only allow methods annotated with
> - *
> - * @WebRemote for security reasons.
> - */
> - private boolean isWebRemoteAnnotated(Method method) {
> - if (method == null)
> - return false;
> - return method.getAnnotation(WebRemote.class) != null;
> - }
> -
> - /**
> - * Return the service component that has been bound to the given name.
> - */
> - protected Object getServiceComponent(String serviceIntfName) {
> - return Component.getInstance(serviceIntfName);
> - }
> -
> - /**
> - * This is used for returning results to the GWT service endpoint. The class
> - * is needed even if the result is null. a void.class responseType is
> - * perfectly acceptable.
> - *
> - * @author Michael Neale
> - */
> - static class ReturnedObject {
> - public ReturnedObject(Class type, Object result) {
> - this.returnType = type;
> - this.returnedObject = result;
> - }
> -
> - public Class returnType;
> -
> - public Object returnedObject;
> - }
> -
> -}
> Index: src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java
> ===================================================================
> --- src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java (revision 9989)
> +++ src/remoting/org/jboss/seam/remoting/gwt/SeamRPCRequest.java (working copy)
> @@ -1,47 +0,0 @@
> -package org.jboss.seam.remoting.gwt;
> -
> -import com.google.gwt.user.server.rpc.SerializationPolicy;
> -
> -import java.lang.reflect.Method;
> -
> -/**
> - * @author Tomaz Cerar
> - * @version $Revision$
> - * @modifiedBy $Author$
> - * @modified $Date$
> - */
> -public class SeamRPCRequest
> -{
> - private final java.lang.reflect.Method method;
> - private final java.lang.Object[] parameters;
> - private final Class[] parameterTypes;
> - private final com.google.gwt.user.server.rpc.SerializationPolicy serializationPolicy;
> -
> - public SeamRPCRequest(Method method, Object[] parameters,
> - Class[] parameterTypes, SerializationPolicy serializationPolicy) {
> - this.method = method;
> - this.parameters = parameters;
> - this.parameterTypes = parameterTypes;
> - this.serializationPolicy = serializationPolicy;
> - }
> -
> - public Method getMethod()
> - {
> - return method;
> - }
> -
> - public Object[] getParameters()
> - {
> - return parameters;
> - }
> -
> - public Class[] getParameterTypes()
> - {
> - return parameterTypes;
> - }
> -
> - public SerializationPolicy getSerializationPolicy()
> - {
> - return serializationPolicy;
> - }
> -}
> Index: src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java
> ===================================================================
> --- src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java (revision 9989)
> +++ src/remoting/org/jboss/seam/remoting/gwt/GWT14Service.java (working copy)
> @@ -1,113 +0,0 @@
> -package org.jboss.seam.remoting.gwt;
> -
> -import static org.jboss.seam.ScopeType.APPLICATION;
> -import static org.jboss.seam.annotations.Install.BUILT_IN;
> -
> -import java.lang.reflect.Constructor;
> -import java.lang.reflect.Method;
> -
> -import org.jboss.seam.annotations.Create;
> -import org.jboss.seam.annotations.Install;
> -import org.jboss.seam.annotations.Name;
> -import org.jboss.seam.annotations.Scope;
> -import org.jboss.seam.annotations.intercept.BypassInterceptors;
> -
> -import com.google.gwt.user.client.rpc.SerializationException;
> -import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader;
> -import com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter;
> -
> -/**
> - *
> - * @author Shane Bryzak
> - */
> - at Scope(APPLICATION)
> - at Name("org.jboss.seam.remoting.gwt.gwtRemoteService")
> - at Install(precedence = BUILT_IN, classDependencies = {"com.google.gwt.user.client.rpc.RemoteService"})
> - at BypassInterceptors
> -public class GWT14Service extends GWTService
> -{
> - private static final String SERIALIZATION_POLICY_PROVIDER_CLASS = "com.google.gwt.user.server.rpc.SerializationPolicyProvider";
> -
> - private static final String SERIALIZATION_POLICY_CLASS = "com.google.gwt.user.server.rpc.SerializationPolicy";
> - private static final String LEGACY_SERIALIZATION_POLICY_CLASS = "com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy";
> -
> -
> - private Constructor streamReaderConstructor;
> - private Constructor streamWriterConstructor;
> -
> - private Object legacySerializationPolicy;
> -
> - @Create
> - public void startup() throws Exception
> - {
> - try
> - {
> - log.trace("GWT14Service starting up");
> -
> - Class policyProviderClass = Class.forName(SERIALIZATION_POLICY_PROVIDER_CLASS);
> - Class serializationPolicyClass = Class.forName(SERIALIZATION_POLICY_CLASS);
> -
> - streamReaderConstructor = ServerSerializationStreamReader.class.getConstructor(
> - new Class[] { ClassLoader.class, policyProviderClass } );
> - streamWriterConstructor = ServerSerializationStreamWriter.class.getConstructor(
> - new Class[] { serializationPolicyClass } );
> -
> - Class legacySerializationPolicyClass = Class.forName(LEGACY_SERIALIZATION_POLICY_CLASS);
> - Method m = legacySerializationPolicyClass.getDeclaredMethod("getInstance");
> - legacySerializationPolicy = m.invoke(null);
> - }
> - catch (Exception ex)
> - {
> - log.error("Error initializing GWT14Service. Please ensure " +
> - "the GWT 1.4 libraries are in the classpath.");
> - throw ex;
> - }
> - }
> -
> - @Override
> - protected String createResponse(ServerSerializationStreamWriter stream,
> - Class responseType, Object responseObj, boolean isException)
> - {
> - stream.prepareToWrite();
> - if (responseType != void.class)
> - {
> - try
> - {
> - stream.serializeValue(responseObj, responseType);
> - } catch (SerializationException e)
> - {
> - responseObj = e;
> - isException = true;
> - }
> - }
> -
> - return (isException ? "//EX" : "//OK") + stream.toString();
> - }
> -
> - @Override
> - public ServerSerializationStreamReader getStreamReader()
> - {
> - try
> - {
> - return (ServerSerializationStreamReader) streamReaderConstructor.newInstance(
> - Thread.currentThread().getContextClassLoader(), null);
> - }
> - catch (Exception ex)
> - {
> - throw new RuntimeException("Unable to create stream reader", ex);
> - }
> - }
> -
> - @Override
> - public ServerSerializationStreamWriter getStreamWriter()
> - {
> - try
> - {
> - return (ServerSerializationStreamWriter) streamWriterConstructor.newInstance(legacySerializationPolicy);
> - }
> - catch (Exception ex)
> - {
> - throw new RuntimeException("Unable to create stream writer", ex);
> - }
> - }
> -}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
From jira-events at lists.jboss.org Fri Jan 30 22:23:54 2009
From: jira-events at lists.jboss.org (Sheng Gu (JIRA))
Date: Fri, 30 Jan 2009 22:23:54 -0500 (EST)
Subject: [jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3752) The
possibility to kill the
conversation stack with the "s:conversationPropagation" tag is missing
In-Reply-To: <33326318.1227551556482.JavaMail.jira@cloud.prod.atl2.jboss.com>
Message-ID: <31571415.1233372234438.JavaMail.jira@cloud.prod.atl2.jboss.com>
[ https://jira.jboss.org/jira/browse/JBSEAM-3752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450500#action_12450500 ]
Sheng Gu commented on JBSEAM-3752:
----------------------------------
For and :
> The possibility to kill the conversation stack with the "s:conversationPropagation" tag is missing
> --------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-3752
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3752
> Project: Seam
> Issue Type: Feature Request
> Affects Versions: 2.1.1.CR1
> Reporter: Denis Forveille
> Assignee: Jacob Orshalick
>
> The possibility to kill the conversation stack with the "s:conversationPropagation" is missing in v2.1.1.CR1.
> It is possible to do that via annotation @End(root=true), the API or with pages.xml, but not with the "s:conversationPropagation" tag that may use to begin/end/join etc... a conversation
> Maybe by adding another enum for "type" like "endAll" ?:
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira