1 2 Previous Next 20 Replies Latest reply: May 15, 2012 8:56 PM by nakamura takuya Go to original post RSS
  • 15. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    nakamura takuya Newbie

    Takayoshi Kimura 様

     

    お世話になっております。

    一番ストレートな修正方法はCMPを利用することです。仕様で順序が保証されないように見えるのはBMPだけであり、CMPであればEJBQLにORDER BYがあるので、順序を保証する結果がとれるはずです。

     

    どうしてもBMPのままにしたい、という場合は取得した結果を自分で並べ替えてArrayListなどにご希望の順序で詰め替える、という処理を書けば良いでしょう。

     

     

    上記の方法を、当方の資産の既存の作りを見ながら、影響範囲を考慮し検討したいと思います。

     

  • 16. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    nakamura takuya Newbie

    Minami Takayuki 様

     

    お世話になっております。

     

     

    再度サンプルを修正し、EntityBeanで例外を発生させたところ、EntityBeanHomeFinderInterceptorFactoryを通過していることが確認できました。

    修正したサンプルと動作時のスタックトレースを添付しましたのでご確認下さい。

     

     

    Minami Takayuki様に頂きました添付のearをもとに、例外部分を取り除いたところ、ご指摘通りの挙動になりました。

    ご報告までに、並び順対応したログを添付させていただきます。

  • 17. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    nakamura takuya Newbie

    続報です。

     

    finderメソッド以外の方法を模索していて、

    EJB2.1の場合、selectメソッドとかhomeメソッドとか実装できると知り

     

    WebLogicの開発ガイドのサイトを参考に、selectメソッドを実装する方法のところを見て

    このメソッドでも、Collectionも返すことが出来るとあったので、早速サンプルで検証を行ってみました。

     

    以下のselectメソッドについての章を参考に実装しましたが、
    http://docs.oracle.com/cd/E18355_01/web.1013/B31852-03/undejbs.htm#623967

     

    デプロイ出来ずエラーになってしまいます。

     

    TestEntityHome.java

    TestEntityBean.java

    の2つに、追加でselectメソッドを作りました。

     

    そして、EARを作成し

     

    JBAS014337: Could not resolve corresponding ejbHome for home interface method public abstract java.util.Collection test.TestEntityHome.selectList() throws javax.ejb.FinderException on EJB TestEntity

    というエラーです。
    もしかして、JBossでは、finderメソッドしかサポートしていない??

     

    デプロイ結果は以下の通りです。

    20:03:51,887 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "EJBTEST.ear"
    20:03:51,935 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "EJBTestWeb.war"
    20:03:51,935 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "EJB.jar"
    20:03:51,950 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named TestEntity in deployment unit subdeployment "EJB.jar" of deployment "EJBTEST.ear" are as follows:

    java:global/EJBTEST/EJB/TestEntity!test.TestEntity
    java:app/EJB/TestEntity!test.TestEntity
    java:module/TestEntity!test.TestEntity
    java:jboss/exported/EJBTEST/EJB/TestEntity!test.TestEntity
    java:global/EJBTEST/EJB/TestEntity!test.TestEntityHome
    java:app/EJB/TestEntity!test.TestEntityHome
    java:module/TestEntity!test.TestEntityHome
    java:jboss/exported/EJBTEST/EJB/TestEntity!test.TestEntityHome

    20:03:51,966 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named GetListBean in deployment unit subdeployment "EJB.jar" of deployment "EJBTEST.ear" are as follows:

    java:global/EJBTEST/EJB/GetListBean!test.GetList
    java:app/EJB/GetListBean!test.GetList
    java:module/GetListBean!test.GetList
    java:jboss/exported/EJBTEST/EJB/GetListBean!test.GetList
    java:global/EJBTEST/EJB/GetListBean!test.GetListHome
    java:app/EJB/GetListBean!test.GetListHome
    java:module/GetListBean!test.GetListHome
    java:jboss/exported/EJBTEST/EJB/GetListBean!test.GetListHome

    20:03:51,997 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.subunit."EJBTEST.ear"."EJB.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTEST.ear"."EJB.jar".INSTALL: Failed to process phase INSTALL of subdeployment "EJB.jar" of deployment "EJBTEST.ear"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_02-ea]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_02-ea]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_02-ea]
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011030: Could not configure component TestEntity
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:92)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
    ... 5 more
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS014337: Could not resolve corresponding ejbHome for home interface method public abstract java.util.Collection test.TestEntityHome.selectList() throws javax.ejb.FinderException on EJB TestEntity
    at org.jboss.as.ejb3.component.entity.EntityBeanHomeViewConfigurator.resolveEjbHomeBusinessMethod(EntityBeanHomeViewConfigurator.java:205)
    at org.jboss.as.ejb3.component.entity.EntityBeanHomeViewConfigurator.configure(EntityBeanHomeViewConfigurator.java:152)
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:921)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    ... 6 more

    20:03:52,013 INFO  [org.jboss.web] (MSC service thread 1-2) JBAS018210: Registering web context: /listtest_war
    20:03:52,231 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: Deploy of deployment "EJBTEST.ear" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"EJBTEST.ear\".\"EJB.jar\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"EJBTEST.ear\".\"EJB.jar\".INSTALL: Failed to process phase INSTALL of subdeployment \"EJB.jar\" of deployment \"EJBTEST.ear\""},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ORBjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ORBjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ORBjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ORBjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]"]}
    20:03:52,231 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment EJB.jar in 13ms
    20:03:52,231 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment EJBTestWeb.war in 13ms
    20:03:52,247 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015877: Stopped deployment EJBTEST.ear in 15ms
    20:03:52,247 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report
    JBAS014777:   Services which failed to start:      service jboss.deployment.subunit."EJBTEST.ear"."EJB.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTEST.ear"."EJB.jar".INSTALL: Failed to process phase INSTALL of subdeployment "EJB.jar" of deployment "EJBTEST.ear"

    20:03:52,247 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"EJBTEST.ear\".\"EJB.jar\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"EJBTEST.ear\".\"EJB.jar\".INSTALL: Failed to process phase INSTALL of subdeployment \"EJB.jar\" of deployment \"EJBTEST.ear\""},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ORBjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ORBjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ORBjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ORBjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.TestEntityMissing[jboss.naming.context.java.comp.EJBTEST.EJB.TestEntity.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.TestEntity]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.HandleDelegatejboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.Validatorjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]","jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.GetListBeanMissing[jboss.naming.context.java.comp.EJBTEST.EJB.GetListBean.ValidatorFactoryjboss.naming.context.java.comp.EJBTEST.EJB.GetListBean]"]}}}

  • 18. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    Minami Takayuki Newbie

    nakamura takuyaさんこんにちは。

     

     

    JBAS014337: Could not resolve corresponding ejbHome for home interface method public abstract java.util.Collection test.TestEntityHome.selectList() throws javax.ejb.FinderException on EJB TestEntity

    というエラーです。
    もしかして、JBossでは、finderメソッドしかサポートしていない??

     

     

    JBossAS7がサポートする仕様は以下に一覧があります。

     

    https://docs.jboss.org/author/display/AS7/Getting+Started+Guide#GettingStartedGuide-GettingStartedwithJBossApplicationServer7

     

    JBoss7.1.0Finalは「Certified Java EE 6 Full Profile」ですので、EJBの仕様に書いてあることをサポートしていないことはないでしょう。

     

    さて、上記のエラーメッセージを直訳すると

    「Homeインタフェース上のメソッドTestEntityHome.selectList()に対応するejbHomeメソッドが見つかりません

    という意味になるかと思います。

     

    http://java.sun.com/products/ejb/docs.html

     

    EJB2.1の仕様の「9.5 Entity Bean’s Remote Home Interface」を読むと、Homeインタフェースに定義するメソッドは

    createメソッド、finderメソッド、homeメソッドと読み取れます。

    また「9.5.4 Home Methods」には、homeメソッドの命名条件として「名前がcreate, find, removeで始まらないメソッド名」

    と記載してあります。

     

    つまり、今回nakamura takuyaさんがselectメソッドを想定してTestEntityHome.javaに定義したselectList()メソッドを

    EJBコンテナがhomeメソッドだと解釈してしまったため、上記のエラーになったと思われます。

     

    selectメソッドの実装方法について、もう少し詳細に調べてみてはいかがでしょうか。

  • 19. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    nakamura takuya Newbie

    minamiさん

     

    お世話になっております。

    コメントありがとうございます。

     

    EJB仕様ですと、selectメソッドというものは、定義されていないのですね。

    selectメソッドについては、WebLogicでは、普通に開発ガイドにかかれていたので、普通にあるものだと

    思ってしまいました。

     

    それで、その後、Homeメソッドを実装することができたような状態になりましたの。その結果

    どうも、finderメソッドとhomeメソッドの動きが微妙に異なっている感じです。

     

    finderメソッドの場合

     

    $Proxy9999

    9999は不定。

     

    homeメソッドの場合

    入れた時の内容のまま

     

    finderメソッドと、homeメソッドで、通り道が変わりました。

    結果、並び順が正しくなって帰ってきた感じです。

     

    取り急ぎ、EARとスタックトレースを添付いたします。

  • 20. Re: WebLogic 11gからJBossAS7.1.0Finalへの移行で生じる、ドロップダウン項目の並び順について
    nakamura takuya Newbie

    お世話になっております。

    中村です。



    先日、当件を機能改善要望ということでFuture requestsしたところ

    https://issues.jboss.org/browse/AS7-4810

     

    投稿する少し前に別の方が同じことで要望を出されていました

    https://issues.jboss.org/browse/AS7-4772

    こちらがOpenされました。


    ただ、リリースの予定は今のところ無いようなので、今回はHomeメソッドで対応ができそうなので、そちらで対応を考えております。

     

    しばらくはリリースされないと思いますが、JBossEJBの改修がされるのではないかと思います。

     

     

    Minami Takayuki 様
    Takayoshi Kimura 様
    フォローいただきありがとうございました。

1 2 Previous Next