我需要在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?怎么样?
我想在服务器中部署EJB ear但我真的很困惑在中选择一个服务器tomcat,TomEE和TomEE Plus.
Tomcat和之间有什么区别TomEE?TomEE和TomEE Plus?TomEE和TomEE Plus?所以我需要一些建议才能做出明智的决定.
什么是Tomcat或TomEE中服务tomcat启动/停止和./catalina.sh运行/停止之间的区别?
他们做的完全一样吗?
我有两个安装了数据库的Linux服务器(A和B)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)
所以我的问题是:
A是关闭并B手动切换到正常操作模式,我的应用程序是否仍然可以使用jdbc连接URL继续进行数据库操作,如上所述?注意:从我学到的各种来源,PostgreSQL它不支持自动故障转移(除非第三方软件参与该过程 - 请参阅下面的评论).出于这个原因,需要手动执行故障转移,这对于这个特定的用例是可以的.
编辑-1:
我决定测试pgBouncer(如评论中所建议的)解决方法.它适用于我的用例.我写了一个看门狗脚本,它自动执行手动步骤:
A仍然存在并侦听传入的连接.B到正常操作模式并让它成为新的主服务器并重新启动服务.pgBouncer设置更改为指向B而不是A重新启动服务.但是,如果有人没有第三方软件的经验,我仍然会感兴趣吗?
我正在关注以下网址中提到的示例? 将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) 我正在使用Tomee.logs文件夹包含这样的文件
我在文档中寻找解释,但可以找到任何东西.据我所知,这些localhost文件只记录"主机"活动.这对吗?这些文件有什么区别?他们会记录不同类型的消息吗?
我正在使用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".
我希望有人遇到同样的问题.另外,我想知道这个问题是否可以解决.谢谢.
我有一个糟糕的时间试图找出哪个是支持在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编写的,我们使用Apache TomEE webserver来运行它.
后端服务公开了几个API,并包含多个控制器.其中一些API可供前端客户端访问,一些API用于后端服务之间的内部通信.
记录对于此应用程序非常重要.要求在开始正常操作之前始终初始化日志记录系统(以确保完全可追溯性).该应用程序使用安全日志记录系统,该系统需要密钥来初始化日志记录(使用此密钥对日志进行签名以防止篡改日志).还需要将日志记录密钥上载到每个服务.每个后端服务都有一个端点,用于接收日志密钥.
存在"鸡或蛋"类型的问题.应用程序需要运行才能接收密钥,但在收到密钥之前,应用程序也不应完全正常运行.
为了满足这些要求,我们正在考虑以下启动程序:
是否有一种激活端点的标准方法来促进此启动过程?或者无论如何控制对端点的访问.
一些额外的信息:应用程序中的控制器类不扩展任何其他类,并且仅使用@Path和@Stateless注释进行修饰.
我按照使用过滤器的方法(如下面的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) 我已经使用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)