标签: apache-tomee

在哪里使用EJB 3.1和CDI?

我正在制作一个基于Java EE的产品,我正在使用GlassFish 3和EJB 3.1.

我的应用程序有会话bean,调度程序和使用Web服务.我最近了解了Apache TomEE,它支持上下文和依赖注入(CDI).GlassFish容器也支持CDI.

我可以替换会话bean,我不需要任何CDI也没有提供的功能吗?如果那样的话,我能得到什么好处?

cdi ejb-3.0 glassfish-3 apache-tomee

115
推荐指数
1
解决办法
4万
查看次数

JavaEE解决方案配置最佳实践

我们构建3层企业解决方案,通常由几个webapp和ejbjar模块组成,这些模块都与​​数据库通信并具有多个外部集成点.

每个模块通常都需要自己的配置,可以改变解决方案的生命周期.部署它变成了一场噩梦,因为现在我们有18个属性文件,必须记住这些文件才能复制并配置为设置数据源,队列,内存要求等.

我希望能有更好的方式,但不乐观.我们考虑/使用的一些选项,每个选项都有它的优点和缺点:

  1. 使用多个maven项目和持续集成(例如,hudson或jenkins)来构建一个配置jar,其中包含每个环境(dev,qa,prod)的所有属性文件,然后将所有内容捆绑为EAR.但是,在需要时,生产中的事情不容易改变.
  2. 将大多数设置放在数据库中,并有一个简单的屏幕来修改它.在内部,我们可以拥有一个可以读取和修改值的通用配置服务EJB.每个模块都可以拥有一个具有特定getter和setter的自定义扩展版本.
  3. 版本控制所有属性文件,然后在生产时检查它,并在进行更改后将其检入生产分支.

有了所有这些,你仍然需要以容器特定的方式配置数据源和队列等:(

java jboss glassfish java-ee apache-tomee

14
推荐指数
1
解决办法
2078
查看次数

如何将EJB功能添加到Eclipse动态Web项目中?

我正在使用EJB 3.0开发一个简单的应用程序,使用OpenEJB进行部署,将Eclipse作为IDE.

我在Eclipse中将项目创建为"动态Web应用程序".当我尝试创建第一个无状态会话bean时,我意识到无法解析@Remote注释.

解决这个问题的正确方法是什么?

  1. 删除项目并创建一个新的"企业应用程序项目"(这似乎相当重,所以我不确定我是否想要朝着这个方向前进)?
  2. 删除项目并创建一个EJB项目(这似乎不正确,因为我相信这样的项目只会让我捆绑应用程序的EJB部分)?
  3. 在我的现有项目中添加一些库(是否有EJB 3.x的库包)?
  4. 在我现有的项目中添加一个方面(我试着看看我是否可以添加一个方面,但我在这个项目的上下文中看不到EJB方面)?

谢谢你的帮助.

更新: 我找到了答案.

TomEE的安装有一个目录,其中包含编译和运行EJB'apache-tomee-webprofile-1.0.0-beta-2/webapps/openejb/lib'所需的所有jar文件

我在Eclipse中创建了一个用户库,其中包含上述lib文件夹中的所有jar文件,并将其添加到构建路径中.

EJB接口现在可以正确编译.

java eclipse ejb apache-tomee

11
推荐指数
2
解决办法
2万
查看次数

如何将Jersey与TomEE/openEJB集成

我正在升级使用Jersey JAX-RS在Apache TomEE服务器上运行的代码.不幸的是,当我尝试将Jersey与TomEE一起使用时,它会抛出错误.

我正在使用eclipse并打开了JAX-RS项目方面.它指向泽西图书馆.我还将Jersey库移动到/ lib /目录中以尝试解决问题无济于事.服务器抛出以下错误:

May 14, 2012 6:26:44 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Provider classes found:
class org.codehaus.jackson.jaxrs.JsonParseExceptionMapper
class org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
class org.codehaus.jackson.jaxrs.JsonMappingExceptionMapper
class org.codehaus.jackson.jaxrs.JacksonJsonProvider
May 14, 2012 6:26:44 AM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.RuntimeException: javax.naming.NameNotFoundException: Name [com] is not bound in this Context. Unable to find [com].
at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:177)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:92)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:75)
at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:576)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:311)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:608)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) …
Run Code Online (Sandbox Code Playgroud)

java jersey java-ee openejb apache-tomee

10
推荐指数
2
解决办法
1万
查看次数

Tomcat/TomEE:TomEE GUI页面404错误

我最近在"Red Hat Enterprise Linux Server(6.6)"上安装了"apache-tomee-webprofile-1.7.2".

我可以通过访问xxxx:8080来访问Tomcat主页,通过这个,我可以访问"服务器状态","管理器应用程序"和"主机管理器"页面.但是,当我访问"TomEE GUI"页面时,我收到"错误404:描述所请求的资源不可用".页.

从我所看到的Tomee运行时,当我访问"管理应用程序"页面时,"/ tomee"就在那里,它的运行状态为真.

我是TomEE的新手,所以可能有一个我错过/完成错误的步骤.所以任何有关如何使这项工作的帮助都会很棒.

我不确定哪个代码与此问题相关,所以请告诉我哪些配置会有所帮助,我会发布它.

tomcat tomcat7 web apache-tomee

10
推荐指数
2
解决办法
4379
查看次数

如何在Hibernate中使用TomEE

我创建了一个非常简单的应用程序,使用持久化上下文(hibernate as provider)从数据库中读取一些值.我将Eclipse与Maven一起使用.

首先,我明白了

Caused by: org.apache.openejb.OpenEJBException: java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider:
Run Code Online (Sandbox Code Playgroud)

并根据这个主题 http://openejb.979440.n4.nabble.com/problem-with-hibernate-persistence-provider-td980429.html 我排除了hibernate-jpa-2.0-api.现在,我的依赖项看起来

<dependency>
 <groupId>postgresql</groupId>
 <artifactId>postgresql</artifactId>
 <version>9.1-901.jdbc4</version>
</dependency>

<dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-entitymanager</artifactId>
 <version>4.1.3.Final</version>
  <exclusions>
    <exclusion>
      <groupId>org.hibernate.javax.persistence</groupId>
      <artifactId>hibernate-jpa-2.0-api</artifactId>
    </exclusion>
  </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

现在,我不知道为什么......

Caused by: java.lang.ClassNotFoundException: org.hibernate.transaction.TransactionManagerLookup
Run Code Online (Sandbox Code Playgroud)

但是TransactionManagerLookup处于hibernate核心.请问,任何人都可以告诉我,在TomEE中如何看待pom.xml使用hibernate?

java hibernate jpa openejb apache-tomee

9
推荐指数
2
解决办法
1万
查看次数

DDL生成和常规persistence.xml设置(OpenJPA)

摘要

我正在尝试运行Java Web应用程序JPA 2.0示例.该示例应用程序被写入到运行Glassfish,使用EclipseLink作为JPA提供商.我想将其转换为运行在TomEEOpenJPA作为JPA提供者,但我不能为起床,并与正在运行的任何详细的教程OpenJPA.

问题

我很难转换persistence.xml到工作OpenJPA而不是EclipseLink.更具体地说,给定的persistence.xml未指定:

  • Entity类.这些必要吗?
  • 所需的JPA提供者.容器会默认为什么吗?
  • JDBC驱动程序.如何指定"内存中"DB(仅用于初始测试目的)?

也:

细节

以下是EclipseLink persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="order" transaction-type="JTA">
        <jta-data-source>jdbc/__default</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode"
                value="both" />
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

我有以下Entity课程:

  • order.entity.LineItem
  • order.entity.LineItemKey
  • order.entity.Order
  • order.entity.Part
  • order.entity.PartKey
  • order.entity.Vendor
  • order.entity.VendorPart

  • 有谁知道OpenJPA的等效persistence.xml是什么样的?
  • 或者,如果有人能指出我的OpenJPA教程,涵盖这些问题,那将是同样好的

java jpa openjpa openejb apache-tomee

8
推荐指数
1
解决办法
8556
查看次数

Gradle - >如何从WEB-INF/lib中省略一些罐子

我有一个带有战争规范的子项目,如下所示:

war {
    from('resources')  {
        include '*.properties'
        into 'WEB-INF/classes/'
    }    
    webXml = file('src/main/webapp/WEB-INF/web.xml')
}
Run Code Online (Sandbox Code Playgroud)

效果很好.创建可部署到Tomcat的单个胖战文件.问题是,当部署到TomEE和JBoss时,我遇到了冲突(即使用Javax Servlet,Jersey等).所以我想排除一组罐子的战争.我查看了Gradle war文档,看起来我需要使用排除.我尝试了两种不同的方式,并没有将战争中的罐子排除在外:

war {

    // copy properties file in classes so that 
    // they may be loaded from classpath
    from('resources')  {
        include '*.properties'
        into 'WEB-INF/classes/'
    }

    // specify web xml
    webXml = file('src/main/webapp/WEB-INF/web.xml')

    // remove jars that conflict with TomEE
    exclude '**/javax.inject-1.jar'
    exclude '**/javax.servlet-2.5.0.v201103041518.jar'
    exclude '**/servlet-api-2.5.jar'
    exclude '**/validation-api-1.0.0.GA.jar'

}
Run Code Online (Sandbox Code Playgroud)

这是在github上托管的NetFlix/karyon项目中的子项目(karyon-examples)中.子项目中的依赖项如下所示:

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.0'
    runtime 'org.slf4j:slf4j-simple:1.7.0'
    compile project(':karyon-extensions')
    compile project(':karyon-admin-web')
}
Run Code Online (Sandbox Code Playgroud)

我希望避免编辑诸如编译与运行时依赖之类的内容,尤其是在其他文件和子项目中.事实上,我试图在上面排除的罐子在使用码头和常规tomcat运行时是良性的.

我只想在不使构建脚本复杂化的情况下排除这些jar.我错过了什么?

谢谢

java jar war gradle apache-tomee

8
推荐指数
1
解决办法
9397
查看次数

使用Apache TomEE时,应用程序启动和配置的工作流程是什么

我知道Apache TomEE是一个常规的Tomcat安装,openejb是一个web应用程序.

我试图了解这一切是如何引导的.我会尝试提出几个有问题的问题:

  • 拥有应用程序启动顺序是否重要?应该在我的网络应用程序之前启动openejb,或者反过来,还是无所谓?
  • 与之前的问题有关.企业应用程序如何使用openejb注册它的bean,或者是openejb在同一服务器中搜索企业应用程序,对于EJB来说?
  • 在一个非常外行的层面上,当它是一个不同的Web应用程序时,他们如何能够提供openejb作为EJB容器.(IIRC Tomcat中的每个webapp都有不同的类路径,他们不能互相踩到脚趾)

任何其他重要信息.

java-ee openejb apache-tomee

7
推荐指数
1
解决办法
920
查看次数

在TomEE +上使用JAX-RS时,"没有资源方法"

使用库存TomEE +,我无法获得简单的JAX-RS资源.我不断得到一个错误:

Jun 30, 2012 5:09:59 PM org.apache.cxf.jaxrs.utils.ResourceUtils checkMethodDispatcher
WARNING: No resource methods have been found for resource class com.tensorwrench.test.BaseResource
Jun 30, 2012 5:09:59 PM org.apache.cxf.jaxrs.utils.ResourceUtils checkMethodDispatcher
WARNING: No resource methods have been found for resource class com.tensorwrench.test.BaseResource
Jun 30, 2012 5:09:59 PM org.apache.cxf.jaxrs.utils.ResourceUtils checkMethodDispatcher
WARNING: No resource methods have been found for resource class com.tensorwrench.test.BaseResource
Jun 30, 2012 5:09:59 PM org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean checkResources 
SEVERE: No resource classes found
Jun 30, 2012 5:09:59 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application …
Run Code Online (Sandbox Code Playgroud)

java tomcat jax-rs java-ee apache-tomee

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-tomee ×10

java ×7

java-ee ×4

openejb ×4

jpa ×2

tomcat ×2

cdi ×1

eclipse ×1

ejb ×1

ejb-3.0 ×1

glassfish ×1

glassfish-3 ×1

gradle ×1

hibernate ×1

jar ×1

jax-rs ×1

jboss ×1

jersey ×1

openjpa ×1

tomcat7 ×1

war ×1

web ×1