标签: tomee

如何在Eclipse中使用Tomcat 8.5.x和TomEE 7.x?

我需要在Eclipse中设置Tomcat 8.5.x服务器版本.当我尝试使用Eclipse GUI创建服务器时,我将Eclipse Luna作为最新版本" Apache Tomcat v8.0 "的选择.当我选择它并浏览到我的Tomcat 8.5.x服务器时,我收到此阻止错误消息:

此目录中的Apache Tomcat安装版本为8.5.0.预计将安装Tomcat 8.0.

尝试TomEE 7.x时会出现相同的错误,该内部基于Tomcat 8.5.

Eclipse Neon中,最新版本的选择是" Apache Tomcat v9.0 ",它也会出现同样的错误.甚至没有" Apache Tomcat v8.5 "选项.

有没有办法在Eclipse中使用Tomcat 8.5和TomEE 7.x?怎么样?

eclipse tomcat tomee tomee-7

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

Tomcat和TomEE,TomEE和TomEE Plus有什么区别

我想在服务器中部署EJB ear但我真的很困惑在中选择一个服务器tomcat,TomEETomEE Plus.

  1. Tomcat和之间有什么区别TomEE
  2. 什么是新的功能TomEETomEE Plus
  3. 在这种情况下,(S)是否有意义去TomEETomEE Plus

所以我需要一些建议才能做出明智的决定.

java tomcat tomee server

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

什么是服务tomcat启动/停止和./catalina.sh运行/停止之间的区别

什么是Tomcat或TomEE中服务tomcat启动/停止和./catalina.sh运行/停止之间的区别?

他们做的完全一样吗?

tomcat tomee

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

如何在JavaEE应用程序中为PostgreSQL Hot Standby设置配置连接故障转移?

我有两个安装了数据库的Linux服务器(AB)PostgreSQL 9.5.我按照文档中的说明配置了热备用模式.在此设置中,配置为主设备,处于热备用模式.这样做效果很好,表现得像预期的那样.AB

现在,我想Java EE通过Hibernate/ JDBC通过TomEE数据源连接一个独立的应用程序(在不同的机器上运行)到这个数据库设置.

PostgreSQL驱动文档状态,使多台主机可以在JDBC连接URL指定:

jdbc:postgresql://host1:port1,host2:port2/database
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 如果A是关闭并B手动切换到正常操作模式,我的应用程序是否仍然可以使用jdbc连接URL继续进行数据库操作,如上所述?
  2. 我是否必须配置其他参数/​​库?

注意:从我学到的各种来源,PostgreSQL它不支持自动故障转移(除非第三方软件参与该过程 - 请参阅下面的评论).出于这个原因,需要手动执行故障转移,这对于这个特定的用例是可以的.

编辑-1:

我决定测试pgBouncer(如评论中所建议的)解决方法.它适用于我的用例.我写了一个看门狗脚本,它自动执行手动步骤:

  1. 继续检查,如果A仍然存在并侦听传入的连接.
  2. 在故障转移的情况下,切换B到正常操作模式并让它成为新的主服务器并重新启动服务.
  3. pgBouncer设置更改为指向B而不是A重新启动服务.

但是,如果有人没有第三方软件的经验,我仍然会感兴趣吗?

java postgresql hibernate jdbc tomee

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

如何使用Hibernate映射postgresql json数据类型?

我正在关注以下网址中提到的示例? 将postgreSQL JSON列映射到Hibernate值类型

但总是得到以下异常:

Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 2000
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:76)
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:99)
    at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:310)
    at org.hibernate.mapping.Column.getSqlType(Column.java:226)
    at org.hibernate.mapping.Table.validateColumns(Table.java:369)
    at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1305)
    at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:512)
Run Code Online (Sandbox Code Playgroud)

我使用TomEE作为服务器.并尝试将Json正文存储到postgresql列.我试图将实体pojos映射到postgres数据类型结构.

知道可能是什么问题吗?或者是否有更好的技术来处理这种情况?请指出我的来源.

用于创建实体表的脚本是:

CREATE TABLE historyentity
(
  id character varying(255) NOT NULL,
  userid character varying(255),
  lastchanged timestamp without time zone,
  type character varying(255),
  history json [],
  CONSTRAINT historyentity_pkey PRIMARY KEY (id),
  CONSTRAINT historyentity_userid_fkey FOREIGN KEY (userid)
      REFERENCES userentity (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
) …
Run Code Online (Sandbox Code Playgroud)

postgresql json hibernate jpa tomee

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

localhost.log,catalina.log,manager.log,host-manager.log之间有什么区别?

我正在使用Tomee.logs文件夹包含这样的文件

  1. localhost_access_log.2016-12-02.txt
  2. localhost.2016-12-02.log
  3. catalina.2016-12-02.log
  4. 主机manager.2016-12-02.log
  5. manager.2016-12-02.log

我在文档中寻找解释,但可以找到任何东西.据我所知,这些localhost文件只记录"主机"活动.这对吗?这些文件有什么区别?他们会记录不同类型的消息吗?

tomcat tomee

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

TomEE启动但Netbeans给出"启动失败"错误

我正在使用NetBeans 8.0.2(也是在最新的每晚构建中尝试过)并尝试在端口8084上启动TomEE Plume服务器(也尝试在不同的端口上).服务器启动并正常工作,但NetBeans认为它没有启动,等待大约2分钟后("等待Tomcat")抛出一个错误窗口"Tomcat无法启动"或类似的东西.

有类似于我的问题,区别在于我完全没有错误,只有"Tomcat无法启动"窗口,因此我甚至无法将日志放在此处,因为它没有任何用处.此外,可用的解决方案对我不起作用.

我相信NetBeans和TomEE之间存在一些通信问题,我几乎可以肯定问题出现在NetBeans中,因为TomEE运行良好并且应该启动它,localhost:8084虽然NetBeans认为它无法启动,但却给了我Tomcat页面.由于某些原因,TomEE在启动后没有向NetBeans发送确认信息的可能性很小,但我真的不知道如何检查它.

我已经研究了同样的问题,两个最常见的问题是"'127.0.0.1*'不被认为是内部或外部命令"和我一样.建议的解决方案是在工具选项中选择"无代理",但它对我没有帮助.

另外,为了确保,我已经编辑了catalina.bat文件并检查了我的用户权限roles="admin-gui,manager-gui,admin,manager-script".

我希望有人遇到同样的问题.另外,我想知道这个问题是否可以解决.谢谢.

java tomcat netbeans tomee

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

最小的hibernate版本与java8兼容

我有一个糟糕的时间试图找出哪个是支持在java8 JRE上运行的Hibernate的最低版本,其中用户代码将使用java8功能.

我发现了这个错误,但它讨论了在hibernate中使用java8功能,它计划用于hibernate 5.2并且肯定hibernate 4.3.1已经支持java8,因为Wildfly发布它并声称完全支持java8.

我试图在hibernate bug跟踪器中找到与java8相关的bug,但是所有这些都是"太新了".

最后,我在Hibernate发行版中搜索了.0版本,并且再次没有成功:发布说明似乎只描述了自上一次RC或beta发布以来的更改......我试着跟踪4.3版本的所有RC和beta版本.0.Final和4.2.0.Final但未能找到这样的提及.

我们目前正在使用Hibernate 4.2.12.Final,我想知道我们是否可以开始使用java8或者我们是否需要升级到更新版本的hibernate(大概是4.3.x).

对于某些上下文,我们使用TomEE作为应用程序服务器.1.7.0刚刚发布,支持java8.但是,如果我们必须升级到hibernate 4.3.x,我有点担心我们不能将Hibernate 4.3.x与TomEE一起使用,因为我已经看到了这个:"但是,Hibernate 4.3+(JPA 2.1)不是由TomEE支持,因为它是Java EE 7." .所以如果可能的话,我们宁愿坚持4.2.xa.

编辑:我发现这个,有人说"我们使用hibernate(和4.3.x支持java 8)".所以可能需要4.3.x.

java hibernate java-8 tomee

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

如何在Java应用程序中有选择地停用REST端点?

我正在开发一个由多个后端服务和前端客户端组成的应用程序.整个应用程序是用Java编写的,我们使用Apache TomEE webserver来运行它.

后端服务公开了几个API,并包含多个控制器.其中一些API可供前端客户端访问,一些API用于后端服务之间的内部通信.

记录对于此应用程序非常重要.要求在开始正常操作之前始终初始化日志记录系统(以确保完全可追溯性).该应用程序使用安全日志记录系统,该系统需要密钥来初始化日志记录(使用此密钥对日志进行签名以防止篡改日志).还需要将日志记录密钥上载到每个服务.每个后端服务都有一个端点,用于接收日志密钥.

存在"鸡或蛋"类型的问题.应用程序需要运行才能接收密钥,但在收到密钥之前,应用程序也不应完全正常运行.

为了满足这些要求,我们正在考虑以下启动程序:

  1. 以简化操作模式启动后端服务,其中每个服务中唯一可访问的端点是用于接收传入密钥的端点.
  2. 一旦接收到密钥,并且日志系统初始化,则激活其他端点,并开始正常操作.

是否有一种激活端点的标准方法来促进此启动过程?或者无论如何控制对端点的访问.

一些额外的信息:应用程序中的控制器类不扩展任何其他类,并且仅使用@Path@Stateless注释进行修饰.


更新1

我按照使用过滤器的方法(如下面的Bogdan所建议的).我创建了一个捕获所有请求的过滤器.应用程序正确启动.init()调用过滤器类中的方法.但是当我访问/installkey端点时会发生错误.

似乎发生的是doFilter(ServletRequest, ServletResponse, FilterChain)调用该方法,并且我的代码检测到请求是针对/installkey端点的.但是电话错误来自:filterChain.doFilter(request, response);.

我已经检查过,而且我知道变量filterChain不是null,但是在方法中doFilter(ServletRequest, ServletResponse, FilterChain)出了问题,我无法调试它.

可能,我没有初始化需要初始化的东西.

我添加了下面的输出.

现在我有以下内容web.xml:

<filter>
    <filter-name>myFilter</filter-name>
    <filter-class>com.company.filter.LoggingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>myFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

以下课程:

public class LoggingFilter implements Filter {

    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(final ServletRequest request, 
                         final ServletResponse response, 
                         final FilterChain …
Run Code Online (Sandbox Code Playgroud)

rest endpoint java-ee tomee

8
推荐指数
2
解决办法
4365
查看次数

如何测试Java EE7 Websocket

我已经使用Java EE 7提供的api实现了一个WebSocket.此外,我已经实现了一个请求我的WebSocket没有任何问题的客户端.为了确保在执行某些代码更改时这仍然有效,我想实现测试,这些测试也可以在构建服务器上运行,例如Jenkins CI,而不仅仅是在本地.我正在使用maven.

这是我的服务器端点:

import javax.enterprise.context.ApplicationScoped;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

@ApplicationScoped
@ServerEndpoint("/example")
public class WebSocket {

    private final Set<Session> sessions = Collections.synchronizedSet(new HashSet<>());

    @OnOpen
    public void open(Session session) {
        sessions.add(session);
    }

    @OnClose
    public void close(Session session) {
        sessions.remove(session);
    }

    @OnError
    public void onError(Throwable error) {
        //TODO do something
    }

    @OnMessage
    public void handleMessage(String message, Session session) throws IOException {
        session.getBasicRemote().sendText("Hello "+message+"!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的客户端端点:

import javax.websocket.*;
import java.io.IOException;
import java.net.URI;

@ClientEndpoint …
Run Code Online (Sandbox Code Playgroud)

java java-ee-7 tomee java-websocket tomee-7

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