Tag: jboss

Java:许multithreading中的XA事务传播

如何在Java SE(非Java EE或Spring)中使用事务管理器(如Bitronix , JBoss TS或Atomikos )来支持以下用例: 我们假设我们有以下类: public class Dao { public void updateDatabase(DB db) { connet to db run a sql } } 我们从中创建一个Java Runnable,如下所示: public class MyRunnable extends Runnable { Dao dao; DB db; public MyRunnable(Dao dao, DB db) { this.dao=dao; this.db = db; } public run() throws Exception { return dao.updateDatabase(db); […]

如何在Eclipse中添加JBoss服务器?

我是JBoss的新手,刚刚安装了Eclipse。 我已将项目添加到工作区,现在我想将其部署到Jboss服务器。 但是,在New Server Runtime Environment列表中,JBoss不可用: 我使用的是以下Eclipse版本: 适用于Web开发人员的Java EE IDE。 版本:Mars Release(4.5.0) 为什么JBoss没有列为运行时环境? 如何将JBoss添加到可用运行时环境列表中?

用什么代替org.jboss.resteasy.client.ClientRequest?

我刚刚发现org.jboss.resteasy.client.ClientRequest已被弃用,这使我在Google上找到的有关如何使用RESTEasy客户端的所有内容无效。 Javadoc没有说明使用什么。 谷歌也是沉默的。 我现在已经恢复到2.3.5 ,但无论如何都会对答案感兴趣,以及如何在不问别人知道的情况下如何找到答案 – 是否有资源提供我可以看到的信息?

PermGen空间exception

我在JBoss上运行的应用程序使用JAVA 5(32位)。 但它仅适用于32位。 当我们在64位java5上部署它时,它会引发exception “java.lang.OutOfMemoryError: PermGen space” exception 是否需要补丁? 是否需要更改代码? 提前致谢。

云是否已为企业Java Web应用程序做好准备? 寻求Java EE托管建议

向周围所有聪明人致以问候! 我想问一下,将Java企业Web应用程序部署到Amazon EC2这样的云是否可行或者是个好主意。 更准确地说,我正在寻找一个应用程序的基础架构选项,该应用程序将处理数百个用户,但是CPU和内存密集型会话都很长。 我正在考虑专用服务器,虚拟专用服务器(VPS)和EC2。 我注意到有一个名为JBoss Cloud的项目,所以人们正在努力实现这样的部署,另一方面它似乎还不成熟,我不确定云是否已经准备好进行这种应用程序,与Twitter等典型的基于云的应用程序不同。 您会建议将其部署到云端吗? 优缺点都有什么? 该应用程序是一个Java EE 5 Web应用程序,其主要function是使用户能够通过组合可用的部件来组成他们自己的定制产品。 它使用无状态和有状态会话bean和JPA将实体持久化到RDBMS,并通过Web服务从公司的库存系统中获取有关Parts的信息。 除了外部用户之外,它还被少数内部用户使用,他们通过公司的LDAP进行身份validation。 该应用程序应该处理大约300-400个并发用户构建他们的产品,并且应该具有合理的可扩展性和可用性,尽管这些质量在这个阶段仅具有中等重要性。 我提出了一个由防火墙(FW)和负载平衡器组成的架构,支持粘性会话和https(在云端,这将被EC2的Elastic Load Balancing服务和应用服务器上的FW取代,在物理架构中,负载 – 平衡器将是一个硬件),然后两个物理集群应用程序服务器与Web服务器结合(如果一个失败,用户不会丢失他/她的长期构建产品),最后是数据库服务器。 数据库服务器需要一个从备份实例,如果失败则可以替换主实例。 这应该提供合理的可用性和容错性,并且只要单个RDBMS可以保持负载就可以提供良好的可伸缩性,这应该可以使用很长一段时间,因为大多数操作都是使用有状态bean在内存中完成的,并且只是偶尔存储或从数据库检索,数据量也很低。 一个有问题的部分可能是对远程库存系统webservice的依赖,但是在应用程序中对其输出的良好缓存也应该没问题。 不幸的是,对于几百个用户所需的“普通Java EE应用程序”,我只是模糊地想到了系统资源(内存大小,CPU /内核的数量和速度)。 基于实际亚马逊产品的粗略且毫无根据的估计是1.7GB和单核,2核“现代CPU”,速度大约2.5GHz(高CPU中型实例)应该足够用于两个应用服务器中的任何一个(因为我们可以通过配置更多的负载来处理更高的负载。 或者我会考虑使用大型实例(64b,7.5GB RAM,1GHz,2核) 所以我的问题是,这种云部署在技术上和财务上是否可行,或者专用/ VPS服务器是否是更好的选择,以及是否有类似的实际经验。 非常感谢你! / Jakub Holy PS:我在云案例研究中发现了JBoss EAP ,它表明可以将实际的Java EE应用程序部署到EC2云,但遗憾的是没有关于拓扑,实例类型或任何内容的详细信息: – (

使用Spnego解密kerberos票

我正在使用spnego( http://spnego.sourceforge.net )在JBoss下进行kerberos身份validation。 我需要解密kerberos票证才能访问包含PAC数据的授权数据。 需要PAC数据来决定将哪些角色授予用户。 如何访问和解密kerberos票? 我搜索网上的例子,但没有努力。

JavaEE解决方案配置最佳实践

我们构建3层企业解决方案,通常由几个webapp和ejbjar模块组成,这些模块都与​​数据库通信并具有多个外部集成点。 每个模块通常都需要自己的配置,可以改变解决方案的生命周期。 部署它变成了一场噩梦,因为现在我们有18个属性文件,必须记住这些文件才能复制并配置为设置数据源,队列,内存要求等。 我希望能有更好的方式,但不乐观。 我们考虑/使用的一些选项,每个选项都有它的优点和缺点: 使用多个maven项目和持续集成(例如,hudson或jenkins)来构建一个配置jar,其中包含每个环境(dev,qa,prod)的所有属性文件,然后将所有内容捆绑为EAR。 但是,在需要时,生产中的事情不容易改变。 将大多数设置放在数据库中,并有一个简单的屏幕来修改它。 在内部,我们可以拥有一个可以读取和修改值的通用配置服务EJB。 每个模块都可以拥有一个具有特定getter和setter的自定义扩展版本。 版本控制所有属性文件,然后在生产时检查它,并在进行更改后将其检入生产分支。 有了所有这些,你仍然需要以容器特定的方式配置数据源和队列等:(

Spring JTA TransactionManager config:支持Tomcat和JBoss

我有一个使用JPA和JTA与Spring的Web应用程序。 我想支持JBoss和Tomcat。 在JBoss上运行时,我想使用JBoss自己的TransactionManager,当在Tomcat上运行时,我想使用JOTM。 我有两种情况都可以工作,但我现在发现我似乎需要为这两种情况分别使用两种Spring配置。 使用JOTM,我需要使用Spring的JotmFactoryBean : 但是在JBoss中,我只需要从JNDI获取“TransactionManager”: 有没有办法配置它,以便使用适当的TransactionManager – JBoss或JOTM – 而不需要两个不同的配置文件?

什么是Java EE 7属性文件配置的最佳实践建议?

应用程序配置在哪里属于现代Java EE应用程序? 人们有什么最佳实践建议? 通过应用程序配置,我的意思是设置连接设置到其他盒子上的服务,包括外部服务(例如Twitter和我们的内部Cassandra服务器……用于诸如主机名,凭证,重试尝试之类的东西)以及与业务逻辑相关的东西(事物)一个人可能会被诱惑作为常量存储在类中,例如某些东西过期等等。 假设: 我们使用单个EAR文件部署到Java EE 7服务器(Wildfly 8.1),该文件包含多个战争和一个ejb-jar。 我们将部署到各种环境:unit testing,本地开发安装,基于云的UAT基础架构,压力测试和生产环境。 我们的许多房产会因这些环境而异。 如果这是人们推荐的最佳实践,我们不反对将属性配置耦合到DI框架。 所有这些都是为了新的开发,因此我们不必遵守传统的要求或限制。 我们非常关注当前的现代最佳实践。 配置是属于EAR的内部还是外部? 如果在 EAR 之外 ,哪里以及如何最好地可靠地访问它们? 如果在 EAR 内部 ,我们可以将它存储在类路径中的任何位置,以便在执行期间轻松访问。 但是我们必须在每次配置更改时重新组装(并且可能重新构建)。 由于我们将拥有多个环境,因此我们需要一种方法来区分EAR中的文件。 我在这里看到两个选项: 利用预期的文件名(例如cassandra.properties ),然后构建多个特定于环境的EAR(例如, appxyz-PROD.ear )。 构建一个EAR(例如appxyz.ear )并将所有各种环境配置文件放入其中,将环境变量附加到每个配置文件名(例如cassandra-PROD.properties )。 当然还要添加一个环境变量(到vm或其他),以便代码知道要拾取哪个文件。 人们可以推荐哪些最佳实践来解决这一共同挑战? 谢谢。

Netty IdleStateHandler的问题 – 我是以错误的方式测试它的吗?

我有一个玩具Netty服务器,我试图在他们的频道上没有发生任何事情时向客户发送心跳消息。 我通过telnet到服务器,写一条消息,然后不发送任何东西来测试这个,但我没有听到任何声音! 安慰: >>telnet localhost 6969 Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. >>foo Did you say ‘foo’? MyPipelineFactory.java public class MyPipelineFactory implements ChannelPipelineFactory { private final Timer timer; private static final ChannelHandler stringDecoder = new StringDecoder(); private static final ChannelHandler stringEncoder = new StringEncoder(); private final ChannelHandler idleStateHandler; public MyPipelineFactory(Timer t) { […]