2

openEJBのTomEE++を使用してエンタープライズJavaアプリを実行しています。アプリはEclipseHelios内から開始されています。EclipseがTomcatを担当できるように、Eclipseの「サーバーの場所」を変更しました。

Eclipse内からアプリケーションを起動すると、奇妙なJPAエラーが発生します。これは、「スライド」と呼ばれる、openejbWebアプリケーションがWebアプリケーションの後にロードされていることが原因であると考えられます。

web.xmlのwebappのload-on-startup値を20に変更しましたが、openejbの値は0です。

コンソールの出力から、openejbがアプリケーションの前または後に開始されているかどうかを判断できません。ログは少し矛盾しているようです。

初めに、私は見ることができます

ERROR: OpenEJB webapp was not found

これは、openejbが開始されなかったことを示唆しているようです。しかし、その後すぐに次のような行が表示されます

INFO: OpenWebBeans Container is starting...

私の限られた知識では、これはopenejbから来るでしょう。

その後、私のものを含むいくつかのアプリの起動を含む、たくさんのことが起こります。

TomcatWebAppBuilder.start /slides

その後、openejbが開始されたことを示唆する行を見つけました

TomcatWebAppBuilder.start /openejb

では、正確には何が起こっているのでしょうか?openejbはアプリケーションの前または後に開始されますか?

以下のログを投稿します。

Apr 18, 2012 1:04:46 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Apr 18, 2012 1:04:47 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:slides' did not find a matching property.
ERROR: OpenEJB webapp was not found
Apr 18, 2012 1:04:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Apr 18, 2012 1:04:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 18, 2012 1:04:48 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
INFO: Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:04:48 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
INFO: succeeded in installing singleton service
Apache OpenEJB 4.0.0-beta-2    build: 20120115-08:26
http://openejb.apache.org/
Apr 18, 2012 1:04:52 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:04:53 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:04:53 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:04:53 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:04:53 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:04:53 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [142] ms.
Apr 18, 2012 1:04:53 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 7751 ms
Apr 18, 2012 1:04:53 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 18, 2012 1:04:53 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.21
TomcatWebAppBuilder.start /slides
[severity=ERROR,message=unexpected element (uri:"", local:"global"). Expected elements are <{http://jboss.org/xml/ns/javax/validation/configuration}constraint-validator-factory>,<{http://jboss.org/xml/ns/javax/validation/configuration}property>,<{http://jboss.org/xml/ns/javax/validation/configuration}traversable-resolver>,<{http://jboss.org/xml/ns/javax/validation/configuration}constraint-mapping>,<{http://jboss.org/xml/ns/javax/validation/configuration}message-interpolator>,<{http://jboss.org/xml/ns/javax/validation/configuration}default-provider>,locator=[node=null,object=null,url=null,line=13,col=13,offset=-1]]
[severity=ERROR,message=unexpected element (uri:"", local:"global"). Expected elements are <{http://jboss.org/xml/ns/javax/validation/configuration}constraint-validator-factory>,<{http://jboss.org/xml/ns/javax/validation/configuration}property>,<{http://jboss.org/xml/ns/javax/validation/configuration}traversable-resolver>,<{http://jboss.org/xml/ns/javax/validation/configuration}constraint-mapping>,<{http://jboss.org/xml/ns/javax/validation/configuration}message-interpolator>,<{http://jboss.org/xml/ns/javax/validation/configuration}default-provider>,locator=[node=null,object=null,url=null,line=13,col=13,offset=-1]]
Apr 18, 2012 1:05:02 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:02 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:02 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:02 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:02 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:02 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [13] ms.
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
Apr 18, 2012 1:05:03 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
Apr 18, 2012 1:05:05 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:05 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
Apr 18, 2012 1:05:06 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
TomcatWebAppBuilder.start /manager
Apr 18, 2012 1:05:07 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:07 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:07 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:07 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:07 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:07 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [9] ms.
using context file /home/user/bin/tomcat/SlidesServer/apache-tomee-webprofile-1.0.0-beta-2/webapps/manager/META-INF/context.xml
Apr 18, 2012 1:05:07 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:07 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
Apr 18, 2012 1:05:07 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
TomcatWebAppBuilder.start /docs
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:08 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:08 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [14] ms.
Apr 18, 2012 1:05:08 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:08 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
Apr 18, 2012 1:05:08 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
TomcatWebAppBuilder.start 
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:08 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:08 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:08 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [6] ms.
Apr 18, 2012 1:05:08 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:08 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
Apr 18, 2012 1:05:08 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
TomcatWebAppBuilder.start /host-manager
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:09 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:09 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [8] ms.
using context file /home/user/bin/tomcat/SlidesServer/apache-tomee-webprofile-1.0.0-beta-2/webapps/host-manager/META-INF/context.xml
Apr 18, 2012 1:05:09 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:09 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
Apr 18, 2012 1:05:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory openejb
TomcatWebAppBuilder.start /openejb
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.CdiBuilder build
INFO: existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@34b23d12
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container is starting...
Apr 18, 2012 1:05:09 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
Apr 18, 2012 1:05:09 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.BeansDeployer validateInjectionPoints
INFO: All injection points were validated successfully.
Apr 18, 2012 1:05:09 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
INFO: OpenWebBeans Container has started, it took [9] ms.
using context file /home/user/bin/tomcat/SlidesServer/apache-tomee-webprofile-1.0.0-beta-2/webapps/openejb/META-INF/context.xml
Apr 18, 2012 1:05:09 PM org.apache.myfaces.shared.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
Apr 18, 2012 1:05:09 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNING: No mappings of FacesServlet found. Abort initializing MyFaces.
OpenEJB Loader init-params:
    There are no initialization parameters.
Apr 18, 2012 1:05:10 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Apr 18, 2012 1:05:10 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Apr 18, 2012 1:05:10 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 16795 ms
Apr 18, 2012 1:05:11 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [action] in context with path [/slides] threw exception [javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: 
    <openjpa-2.1.1-r422266:1148538 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: Select s from SlideShow s [java.lang.String]] with root cause
4

1 に答える 1

2

Tomcat/TomEEがEclipseから起動されたときにJavaAgentが使用されていないように聞こえます。-javaagentコマンドラインでvmパラメータを介して指定する必要があるopenejb-javaagentjarファイルがあります。

これにより、OpenJPAバイトコードエンハンサーがオンになり、すべてのJPA機能が正しく機能するようになります。-javaagentOpenJPAはJPAを実装するためのサブクラスベースのアプローチのサポートが制限されているため(JPAを実装する方法はサブクラス化エンティティークラスまたはバイトコード拡張エンティティークラスの2つのみ)、vmフラグがなくてもある程度機能します。たとえば、Hibernateはサブクラス化のみを使用し、javaagentは必要ありません。

バニラTomcat起動コマンドには、次の引数があります。

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java
-Djava.util.logging.config.file=<tomcat-home>/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=<tomcat-home>/endorsed
-classpath <tomcat-home>/bin/bootstrap.jar:<tomcat-home>/bin/tomcat-juli.jar
-Dcatalina.base=<tomcat-home>
-Dcatalina.home=<tomcat-home>
-Djava.io.tmpdir=<tomcat-home>/temp
org.apache.catalina.startup.Bootstrap
start

TomEEのインストールには-javaagent、OpenJPAで必要なため、1つ余分に追加されます(代わりにHibernateを使用する場合は省略できます)。

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java
-Djava.util.logging.config.file=<tomcat-home>/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=<tomcat-home>/endorsed
-classpath <tomcat-home>/bin/bootstrap.jar:<tomcat-home>/bin/tomcat-juli.jar
-Dcatalina.base=<tomcat-home>
-Dcatalina.home=<tomcat-home>
-Djava.io.tmpdir=<tomcat-home>/temp
-javaagent:<tomcat-home>/lib/openejb-javaagent.jar
org.apache.catalina.startup.Bootstrap
start
于 2012-04-19T07:33:27.880 に答える