簡體   English   中英

在Glassfish上啟動Java EE應用程序

[英]Starting Java EE Application on Glassfish

在Mac上,我成功開發並運行了Java EE應用程序。 它是帶有EJB模塊和Web模塊的EAR。 現在繼續在Linux設備(Ubuntu)上運行,我無法再啟動完全相同的應用程序。

我用Maven創建了JAR。 我嘗試使用以下方式運行該應用程序:

asadmin deploy ejbEntities/target/ejbEntities-1.0-SNAPSHOT.jar 

我還嘗試在瀏覽器rhttp:// localhost:4848:Applications /-> Deploy ..中選擇管理控制台。選擇Snapshot.jar

我也用Netbeans進行了測試,結果都一樣:

經過依賴構建並運行。 Tha Glassfish的輸出說明其已成功運行。 但是該應用程序無法正常運行,並且在服務服務器/ glassfish服務器/應用程序/中未顯示任何內容,輸出為server.log:

    Exception while loading the app : EJB Container initialization error
    sageBeanClient.java:168)
at org.glassfish.ejb.mdb.MessageBeanContainer.<init>(MessageBeanContainer.java:252)
at org.glassfish.ejb.mdb.MessageBeanContainerFactory.createContainer(MessageBeanContainerFactory.java:63)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:206)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
at org.glassfish.admin.rest.resources.admin.CommandResource.executeCommand(CommandResource.java:404)
at org.glassfish.admin.rest.resources.admin.CommandResource.execCommandSimpInMultOut(CommandResource.java:234)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:365)
at org.glassfish.admin.rest.adapter.JerseyContainerCommandService$3.service(JerseyContainerCommandService.java:173)
at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:179)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745) Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid destination jms/NewMessage for MDB: JNDI name not found
at com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:2263)
... 71 more]][2015-06-01T15:15:19.286+0200] [glassfish 4.1] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=130 _ThreadName=admin-listener(6)] [timeMillis: 1433164519286] [levelValue: 800] [[Redirecting to /common/index.jsf]] [2015-06-01T15:15:19.301+0200] [glassfish 4.1] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=132 _ThreadName=admin-listener(8)] [timeMillis: 1433164519301] [levelValue: 800] [[ Admin Console: Initializing Session Attributes...]]

可能是什么問題?應用程序沒有改變,其環境也沒有改變。

谷歌搜索后,我發現問題與語法有關。

例如: Glassfish v3:無法部署MessageDriven Bean-缺少目標JNDI名稱

我遇到了同樣的錯誤。 問題是:@ActivationConfigProperty(propertyName =“ destination”,propertyValue =“ jms / SampleTopic”)這需要是@ActivationConfigProperty(propertyName =“ destination”,propertyValue =“ SampleTopic”)

哪里可以設置此屬性? Glassfish配置文件在哪里?

我找到了domain.xml文件。 〜/ glassfish4 / glassfish / domains / domain1 / config / domain.xml在該文件中,我找不到關於com.sun.appserv。*的任何內容。 包。 該應用程序曾經與此默認文件一起使用(在Mac上)。 使用asadmin終端,我嘗試添加自定義資源。 他們被列出了。 重新啟動glassfish之后,沒有不同的結果。

應用程序部署指南https://glassfish.java.net/docs/4.0/application-deployment-guide.pdf提到了關於glassfish-ejb-jar.xml和ejb-jar.xml的內容。 我只能為版本3.1找到這些文件。 http://docs.oracle.com/cd/E26576_01/doc.312/e24929/dd-files.htm#GSDPG00080但是該應用程序能夠以默認設置運行,因此沒有這些文件。

有人可以指導我完成這一步嗎?

提前致謝。

彼得,

解決了:

在我閱讀了Glassfish手冊https://glassfish.java.net/docs/4.0/application-deployment-guide.pdf並將glassfish-ejb-jar.xml放入后:App / Other Sources / src / main / resources / META-INF。

<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//
DTD GlassFish Application Server 3.1 EJB 3.1//EN" 
"http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">
<glassfish-ejb-jar>
<display-name>First Module</display-name>
<enterprise-beans>
<ejb>
    <ejb-name>ejbentities</ejb-name>
    <jndi-name>ejbEntities</jndi-name>
    <bean-pool>
        <steady-pool-size>10</steady-pool-size>
        <resize-quantity>10</resize-quantity>
        <max-pool-size>100</max-pool-size>
        <pool-idle-timeout-in-seconds>600</pool-idle-timeout-in-seconds>
    </bean-pool>
    <bean-cache>
        <max-cache-size>100</max-cache-size>
        <resize-quantity>10</resize-quantity>
        <removal-timeout-in-seconds>3600</removal-timeout-in-seconds>
        <victim-selection-policy>LRU</victim-selection-policy>
    </bean-cache>
</ejb>
<cmp-resource>
    <jndi-name>jdbc/__default</jndi-name>
    <create-tables-at-deploy>true</create-tables-at-deploy>
    <drop-tables-at-undeploy>true</drop-tables-at-undeploy>
</cmp-resource>
</enterprise-beans>
 <keep-state>true</keep-state>
</glassfish-ejb-jar>

該位置不在手冊中,但可以在以下位置找到它: https : //blogs.oracle.com/JagadishPrasath/entry/application_scoped_resources_in_glassfish

這樣就解決了錯誤,我終於對Glassfish有了更好的了解。 希望以后我可以為您提供幫助。

但是,該應用程序如何在Mac(Netbeans Glassfish安裝)上運行?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM