[japan-jbug 603] JBossのマイグレーションについて

Back to archive index

mouton zeugs****@gmail*****
2010年 5月 15日 (土) 22:28:02 JST


はじめまして
寺嶋と申します。

ぶしつけで申し訳ありませんが、現在以下のような問題で困っております。
なにかわかる方がいらっしゃればと思います。


EJB3.0+JSFを動作させる環境としてJBoss+Seamを使用しています。
現在マイグレーションを行おうとしており、
旧環境:JBoss4.2.3.GA+Seam2.0.3-SNAPSHOT
新環境:JBoss5.1.0.GA+Seam2.2.0.GA
です。

旧環境では問題なく動作しているようでしたが、
新環境でランタイムエラーが発生します。
困難は2つあります。

================================
1.

SeamコンポーネントのメソッドをJSFアクションとしてよびだそうとしていま
すが、
action="#{SeamComponentName.ActionMethodName}"
のように指定すると、
javax.el.ELException: /xxxxx.xhtml: Property 'ActionMethodName' not found on

type org.javassist.tmp.java.lang.Object_$$_javassist_seam_19
...
...
という例外が発生してしまいます。
(MethodExpressionと解釈すべきところがPropertyExpressionとして認識されている?)

なお
public void setActionMethodName(String s){}
public String getActionMethodName(){
    return "#{SeamComponentName.ActionMethodName}";
}
のようにプロパティ値
"#{SeamComponentName.ActionMethodName}"
(これは本来のMethodExpression)をもつように
ActionMethodNameプロパティを用意してやると動作します。


実際のJSF記述は以下のようになっています。

<a4j:commandButton
    value="#{messages['common.dialogYes']}"
    action="#{terminalManager.delete}"
    reRender="terminalsTable"
    oncomplete="Richfaces.hideModalPanel('deleteConfirm');"
    eventsQueue="submitQueue"
    requestDelay="300"
    styleClass="confirmation-dialog-button" />

また実際に得たメッセージは以下のようになっています。

16:04:21,546 ERROR [viewhandler] Error Rendering View[/terminal-list.xhtml]
javax.el.ELException: /terminal-list.xhtml: Property 'delete' not found on
type
org.javassist.tmp.java.lang.Object_$$_javassist_seam_19
at
com.sun.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:53)

at
com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)

at
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:232)

at
com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180)

at
com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127)

at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at
org.jboss.seam.ui.util.cdk.RendererBase.renderChild(RendererBase.java:186)
at
org.jboss.seam.ui.util.cdk.RendererBase.renderChildren(RendererBase.java:166)

at
org.jboss.seam.ui.renderkit.DecorateRendererBase.doEncodeChildren(DecorateRendererBase.java:152)

at
org.jboss.seam.ui.util.cdk.RendererBase.encodeChildren(RendererBase.java:92)

at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
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:100)

at
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

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.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)

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:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
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:60)
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.service.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:135)

at
org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:94)

at
org.jboss.web.tomcat.service.session.LockingValve.invoke(LockingValve.java:62)

at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)

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:829)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)


================================
2.

同様にSeamコンポーネントのメソッド(ただし引数付き)をJSFアクションとしてよびだそうとしていますが、
action="#{SeamComponentName1.ActionMethodName(SeamComponentName2.PropertyName)}"

のように指定すると、
javax.el.ELException: javax.ejb.EJBTransactionRolledbackException:
Application
was not properly initialized at startup, could not find Factory:
javax.faces.application.ApplicationFactory
...
...
が発生します。

実際のJSF記述は以下

<a4j:support
    event="onchanged"
    limitToList="true"
    reRender="messages"
    action="#{dateValidator.isAfter(terminalFilterCriteria.from,
terminalFilterCriteria.to)}" />


なお、調べた限りでは海外でも同じ問題で困っている人がいらっしゃり、
「JBossが対応すべきだ」などと書かれていたのが気になります。

わかる方、いらっしゃればよろしくお願いします。

それでは失礼します。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Descargar 



Japan-jbug-members メーリングリストの案内
Back to archive index