当前位置: 首页 > 知识库问答 >
问题:

如何将EJB模块从Netbeans部署到Glassfish

阙新觉
2023-03-14

Netbeans@stateless@remoteEJB是如何从EJB模块部署到Glassfish的?

Netbeans能够做到这一点,但如何在IDE之外实现这一点呢?

thufir@dur:~$ 
thufir@dur:~$ tail glassfish-4.1/glassfish/domains/domain1/logs/server.log -n 34
    at java.lang.Thread.run(Thread.java:744)
]]

[2014-09-22T01:41:57.266-0700] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=42 _ThreadName=admin-listener(5)] [timeMillis: 1411375317266] [levelValue: 1000] [[
  Exception while deploying the app [HelloEJB] : Invalid ejb jar [HelloEJB]: it contains zero ejb. 
Note: 
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean. 
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. 
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.]]

[2014-09-22T03:52:08.027-0700] [glassfish 4.1] [INFO] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383128027] [levelValue: 800] [[
  visiting unvisited references]]

[2014-09-22T03:52:08.067-0700] [glassfish 4.1] [INFO] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383128067] [levelValue: 800] [[
  visiting unvisited references]]

[2014-09-22T03:52:08.511-0700] [glassfish 4.1] [INFO] [AS-EJB-00054] [javax.enterprise.ejb.container] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383128511] [levelValue: 800] [[
  Portable JNDI names for EJB HelloBean: [java:global/HelloEJB/HelloBean, java:global/HelloEJB/HelloBean!hello.HelloBeanRemote]]]

[2014-09-22T03:52:08.513-0700] [glassfish 4.1] [INFO] [AS-EJB-00055] [javax.enterprise.ejb.container] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383128513] [levelValue: 800] [[
  Glassfish-specific (Non-portable) JNDI names for EJB HelloBean: [hello.HelloBeanRemote#hello.HelloBeanRemote, hello.HelloBeanRemote]]]

[2014-09-22T03:52:09.142-0700] [glassfish 4.1] [WARN] [] [org.jboss.weld.Event] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383129142] [levelValue: 900] [[
  WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.]]

[2014-09-22T03:52:09.152-0700] [glassfish 4.1] [WARN] [] [org.jboss.weld.Event] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383129152] [levelValue: 900] [[
  WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.]]

[2014-09-22T03:52:09.157-0700] [glassfish 4.1] [WARN] [] [org.jboss.weld.Event] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383129157] [levelValue: 900] [[
  WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.]]

[2014-09-22T03:52:10.646-0700] [glassfish 4.1] [INFO] [] [javax.enterprise.system.core] [tid: _ThreadID=40 _ThreadName=admin-listener(3)] [timeMillis: 1411383130646] [levelValue: 800] [[
  HelloEJB was successfully deployed in 2,783 milliseconds.]]

thufir@dur:~$ 


package hello;

import javax.ejb.Stateless;

@Stateless
public class HelloBean implements HelloBeanRemote {

    @Override
    public String hi() {
        return "hello world";
    }

    @Override
    public String bye() {
        return "goodbye";
    }

}


package hello;

import javax.ejb.Remote;

@Remote
public interface HelloBeanRemote {

    public String hi();

    public String bye();
}

另见:

如果EJB模块依赖于其他一些jar文件,那么部署独立的EJB模块是不起作用的-这些jar文件被忽略并且没有部署到服务器上,这将导致EJB模块的ClassNotFound异常。类似的情况也在AppClient中。

这从来没有起过作用,这个问题从4.x NB早期版本就存在了。

共有1个答案

凤衡
2023-03-14

尝试执行相同的EJB模块,但通过企业应用程序创建它。选择New Project>Java EE>Enterprise Application您可以取消选择“Web Application Module”选项,而只选择“Create EJB Module”选项。在编写EJB代码之后,左键单击Entrerprise应用程序并选择“Deploy”。这段视频可以帮到你。

 类似资料:
  • 我使用的是NetBeans 8.0.2、JDK1.8和Glassfish 4。我还使用了另一个配置,使用了NB 7.3.1、jdk 1.7和GF 3.1.2和相同的结果。 我正在创建一个新的Java EE项目,只有一个EJB模块。当我尝试部署EJB模块时,我得到以下错误: 这是服务器日志: 我已经证实了这个.罐子是存在的。我找遍了所有地方,也没有找到类似的东西。我能做什么?Netbeans、Jav

  • 我在中有测试资源,公共模块(jar)没有部署在中,应该在构建过程中通过覆盖集成的war出现在中。 有没有一种方法可以在Maven配置中不添加Tomcat插件的情况下进行干净的部署? 对于信息,它是霓虹灯版本。部署程序集只配置(加上Maven依赖项)。

  • 我是java EE的新手。制作了我的第一个持久性应用程序,但无法部署。 错误是: Glassfish窗口日志(无效资源): 原因:com.sun.appserv.connectors.internal.api.connectorruntime异常:无效资源:jdbc/zoodb__pm(位于org.glassfish.jdbcruntime.service.jdbcdatasource.valid

  • 我是Java EE新手。我使用Eclipse、jBoss/WildFly和Maven。我有一个多模块Maven项目: 父Maven项目(pom) 目前,EJB项目打包在Web应用程序中,整个解决方案部署为一个文件。 我想更改它:我需要将war和jar项目独立地部署到应用服务器(作为两个独立的应用程序)。然后web项目可以通过远程接口访问EJB。 问题是: 我可以使用在Eclipse中部署项目 如何

  • 我在NetBeans中创建了一个带有EJB模块和web模块的Java EE应用程序。业务逻辑驻留在EJB模块内部的EJB中。web模块的托管bean是否可以访问EJB模块内部的EJB?怎么做? (JDK 1.7、Java EE 6、Glassfish 3.1.2.2、NetBeans IDE 7.2)

  • 我在运行netbeans web应用程序时遇到一个错误。 它的意思是 C:\users\dhruv\documents\netbeansprojects\finalproject\nbproject\build-impl.xml:1025:模块尚未部署。有关详细信息,请参阅服务器日志。 在我的项目中添加了一个servlet之后,我突然出现了这个错误。这些是xml文件中的行。