标签: tomee

使@Schedule仅在群集环境中运行一次

我有两个tomee实例聚集.

每个人都有一个注释方法

@Schedule(dayOfWeek = "*")
public void runMeDaily() {...}
Run Code Online (Sandbox Code Playgroud)

我想每天只运行一次这种方法.一天不两次(每个实例一个)

我可以使用此处描述的标志仅在一个WebLogic群集节点上运行@Scheduled任务?或者只选择一些节点,但我想知道是否有更优雅的方式来做到这一点.

这个问题与集群环境中的EJB3.1 @Schedule有些相关,但我没有使用JBOSS.(而且没有回答)

java quartz-scheduler java-ee tomee

5
推荐指数
1
解决办法
8394
查看次数

org.apache.activemq.broker.TransportConnection serviceTransportException警告:java.io.EOFException

在我的服务器日志中,我偶尔可以看到例外:

Aug 11, 2015 10:13:34 AM org.apache.activemq.broker.TransportConnection serviceTransportException
WARNING: Transport Connection to: tcp://127.0.0.1:55472 failed: java.io.EOFException
Run Code Online (Sandbox Code Playgroud)

那些似乎不是实际事件或消息发送到队列.它们只是随机发生的.

这是Tomcat/Tomee上的ActiveMQ

配置ActiveMQ的代码是:

我的ActiveMQ配置非常简单:

<?xml version="1.0" encoding="UTF-8"?>
<tomee>
    <!-- see http://tomee.apache.org/containers-and-resources.html -->

    <!-- activate next line to be able to deploy applications in apps -->
    <!-- <Deployments dir="apps" /> -->

    <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
        BrokerXmlConfig =  broker:(tcp://localhost:61616)
        ServerUrl       =  tcp://localhost:61616
    </Resource>

    <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
        ResourceAdapter = MyJmsResourceAdapter
    </Resource>

</tomee>
Run Code Online (Sandbox Code Playgroud)

要定义队列我有一个简单的代码:

@Resource(name = "myQueue")
private Queue barQueue;

@Resource
private ConnectionFactory connectionFactory;

/**
 * Push Message to Queue …
Run Code Online (Sandbox Code Playgroud)

java tomcat activemq-classic jms tomee

5
推荐指数
1
解决办法
4197
查看次数

@Inject无法初始化对象

我正在使用tomee服务器来运行我的javaEE应用程序.我写了一个注入对象的过滤器.但是,该对象似乎没有实例化:

以下是我的代码:

Filter.java

@Priority(value = 2)
@Provider
@Singleton
public class Filter implements ContainerRequestFilter {


     @Inject
     private Faculty faculty;


     public void filter(ContainerRequestContext requestContext) {
         System.out.println("faculty name is :"+faculty.getFacultyName());
     }
}
Run Code Online (Sandbox Code Playgroud)

Faculty.java

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;

public class Faculty {

    private List<String> facultyMembers;
    private String facultyName;

    @PostConstruct
    public void initialize() {
        this.facultyMembers = new ArrayList<String>();
        facultyMembers.add("Ian Schultz");
        facultyMembers.add("Diane Reyes");
        facultyName = "Computer Science";
    }

    public List<String> getFacultyMembers() {
        return facultyMembers;
    }

    public String getFacultyName() {
        return facultyName;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在获得NPE.以下是堆栈跟踪: …

java-ee cdi tomee tomee-7

5
推荐指数
0
解决办法
854
查看次数

安全性错误 - 启动TomEE Plume 1.7.4

我下载了最新的TomEE Plume 1.7.4版本,并尝试从IntelliJ IDEA 14内部启动它,看起来我是一个正常的服务器设置,我收到超时错误,并重复打印以下错误消息:

2016年4月11日上午9:20:31 org.apache.openejb.server.ejbd.EjbDaemon服务WARNUNG:"null OEJP/4.7"FAIL"安全错误 - [Ljava.net.URI;未列入白名单,因为可以取消预防,之前已被阻止加载它." - 调试StackTrace

我可以从普通的shell启动服务器,所以似乎与IDE有关.有谁知道问题是什么?

intellij-idea tomee

5
推荐指数
1
解决办法
1779
查看次数

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri

我正在转换Web应用程序以使用TomEE而不是Jboss 5.1.0并看到以下异常:

ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[mlui]- Servlet.service()     for servlet [mlui] in context with path [] threw exception [The absolute uri: http://www.springframework.org/spring-social/social/tags cannot be resolved in either web.xml or the jar files deployed with this application] with root cause
org.apache.jasper.JasperException: The absolute uri: http://www.springframework.org/spring-social/social/tags cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:445)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1427)
at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
at …
Run Code Online (Sandbox Code Playgroud)

java jsp jboss5.x spring-social tomee

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

TomEE 7.0.0上ManagedScheduledExecutorService的任务内部的事务?

上下文

我想使用安排重复的后台任务ManagedScheduledExecutorService.我通过一个获得我的Runnables/Callables Instance,所以我的任务中有注入功能.

我的应用程序运行TomEE 7.0.0-SNAPSHOT webprofile.

问题

当这些任务访问数据库时,他们需要一个事务.但是,Runnable/ Callableno事务内部是活动的.

用户交易

ManagedScheduledExecutorService文档说明了这一点

如果需要事务,请使用javax.transaction.UserTransaction实例.通过使用Resource注释请求注入UserTransaction对象,可以使用UserTransaction实例(...).

但是,注入了

@Resource
private UserTransaction userTransaction;
Run Code Online (Sandbox Code Playgroud)

null在调用任务时.

无国籍豆

我采用的另一种方法是将无状态EJB注入到我的任务中,希望这会为我创建一个事务.

这导致启动时出现以下异常:

SEVERE: CDI Beans module deployment failed
java.lang.IllegalStateException: no interface to proxy for ejb StatelessEjb, is this is a MDB maybe you shouldn't use a scope?
    at org.apache.openejb.cdi.CdiEjbBean.createEjb(CdiEjbBean.java:252)
    at org.apache.openejb.cdi.CdiPlugin.getSessionBeanProxy(CdiPlugin.java:224)
    at org.apache.webbeans.container.BeanManagerImpl.getEjbOrJmsProxyReference(BeanManagerImpl.java:951)
    at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:777)
    at org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:651)
    at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:111)
    at org.apache.webbeans.inject.InjectableConstructor.createParameters(InjectableConstructor.java:109)
    at org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableConstructor.java:72)
    at …
Run Code Online (Sandbox Code Playgroud)

ejb java-ee java-ee-7 tomee tomee-7

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

如何在TomEE 7中使用Jackson作为JAX-RS-Client的JSON提供者而不是Johnzon?

我使用TomEE 7.0.1和Jackson 2作为JAX-RS JSON提供程序(配置openejb-jar.xml).将json发布到jax-rs服务非常有效,并使用jackson注释.

但是使用JAX-RS客户端(或cxf webclient)总是使用Johnzon,即使我将Jackson提供给Webclient.create方法也是如此.经过一些调试后,我确信TomEE会以某种方式将Johnzon添加到客户端工厂,并且不能使用其他的json消息体解析器.

这是TomEE CXF集成的错误还是我错过了什么?

java json jackson tomee tomee-7

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

出现内存不足错误时自动重新启动tomcat

当内存不足[OOME]错误时,如何配置Tomcat自动重新启动。

我认为

-XX:OnOutOfMemoryError="/yourscripts/tomcat-restart"
Run Code Online (Sandbox Code Playgroud)

但是不确定这里的“您的脚本”代表什么目录?

java tomcat jvm tomcat7 tomee

3
推荐指数
1
解决办法
4028
查看次数

org.apache.xbean.asm4.ClassReader中的java.lang.IllegalArgumentException.<init>

当我尝试部署我的项目时,我收到此错误:

Sep 01, 2014 11:34:27 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor D:\Sun\Apache Tomee+\conf\Catalina\localhost\Workshop.xml
Sep 01, 2014 11:34:27 PM org.apache.tomee.catalina.TomcatWebAppBuilder init
INFO: ------------------------- localhost -> /Workshop
Sep 01, 2014 11:34:28 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(F:\Web Design\wwwroot\Ali Farvardin\Farvardin Workshop\Workshop\build\web\WEB-INF\lib\javaee-api-7.0.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Sep 01, 2014 11:34:28 PM org.apache.tomee.catalina.TomEEClassLoaderEnricher validateJarFile
WARNING: jar 'F:\Web Design\wwwroot\Ali Farvardin\Farvardin Workshop\Workshop\build\web\WEB-INF\lib\javax.persistence_2.1.0.v201304241213.jar' contains offending class: javax.persistence.Entity. It will be ignored.
Sep 01, 2014 11:34:28 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: …
Run Code Online (Sandbox Code Playgroud)

apache deployment tomee

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

在TomEE中使用Jersey RESTful Web服务

我在使用带有TomEE服务器的Jersey运行简单的RESTful Web服务时遇到了一些问题.(这是我正在遵循的教程:http://www.vogella.com/tutorials/REST/article.html虽然我使用Maven作为我的依赖项,而TomEE JAX-RS作为我的服务器).当我运行服务器时,我收到以下错误:

org.apache.openejb.OpenEJBException: Unable to load servlet class: org.glassfish.jersey.servlet.ServletContainer: org.glassfish.jersey.servlet.ServletContainer
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2113)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1843)
at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:360)
at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:401)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:962)
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1214)
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

servlet类派生自我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>RestTest</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <!-- Register resources and providers under com.vogella.jersey.first package. -->
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>com.vogella.jersey.first</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet> …
Run Code Online (Sandbox Code Playgroud)

java servlets maven apache-tomee tomee

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

NoClassDefFoundError:TomEE启动时的javax / faces / component / UIViewAction

我正在尝试将一个Web项目(中的所有JAR WEB-INF/lib)迁移到Maven Web项目(中的所有JAR pom.xml)。

该项目使用以下库:

  • JSF 2.2
  • 素颜
  • 靴子脸
  • OmniFaces

它在TomEE上运行。

TomEE启动时会出现以下错误:

NoClassDefFoundError:javax / faces / component / UIViewAction

但是,TomEE在类路径上提供了JSF2库。

这是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lb</groupId>
<artifactId>XXX</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>XXX</name>
<description>Application XXX</description>

<url>http://XXX.fr</url>
<organization>
    <name>XXX</name>
    <url>http://XXX.fr</url>
</organization>
<inceptionYear>2016</inceptionYear>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <javase.version>1.7</javase.version>
    <javaee.version>7.0</javaee.version>
</properties>

<developers>
    <developer>
        <id>XXX</id>
        <name>YYY</name>
        <email>ZZZ@gmail.com</email>
    </developer>
</developers>

<build>
    <directory>${basedir}/target/${project.artifactId}-${project.version}</directory>
    <finalName>XXX</finalName>

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${javase.version}</source>
                <target>${javase.version}</target>
                <encoding>UTF-8</encoding> …
Run Code Online (Sandbox Code Playgroud)

jsf maven omnifaces tomee tomee-7

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

为什么我得到javax.ejb.EJBTransactionRolledbackException? - setRollbackOnly

在我的Web应用程序中,我在Apache Tomcat(TomEE)/7.0.37服务器上使用OpenJPA.

我的实体User.class:

@Entity
@Table(name = "USER")
public class User implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue
  @Basic(optional = false)
  @Column(name = "id_user")
  private Integer idUser;
  @Size(max = 8)
  @Column(name = "login")
  private String login;
  @Size(max = 128)
  @Column(name = "password")
  private String password;
  @OneToOne(cascade = CascadeType.ALL, mappedBy = "user")
  private Lecturer lecturer;
  @OneToOne(cascade = CascadeType.ALL, mappedBy = "user")
  private Student student;
  @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
  private List<UserHasRoles> userHasRolesList;

  //constructors, getters, setters
} …
Run Code Online (Sandbox Code Playgroud)

java jpa openjpa tomee

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