问题标签 [embedded-jboss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6021 浏览

java - 帮助在 Tomcat 5.5.x 中使用嵌入式 JBoss 配置 JNDI

当我在我的代码中尝试以下查找时:

我得到以下异常:

我按照 JBoss wiki 说明安装了嵌入式 JBoss 。我使用配置 wiki 页面中指定的“默认扫描每个 WAR”部署来配置 Tomcat 。

引用配置页面:

JNDI

嵌入式 JBoss 组件(如连接池、EJB、JPA 和事务)广泛使用 JNDI 来发布服务。嵌入式 JBoss 通过将自身置于 Tomcat 的 JNDI 实例之上来覆盖 Tomcat 的 JNDI 实现。> 原因有以下几点:

  1. 为了避免必须在 server.xml 中声明这些服务中的每一项
  2. 允许在 Web 应用程序和 EJB 之间无缝集成 java:comp 命名空间。
  3. Tomcat 的 JNDI 实现中存在一些严重的错误,这些错误会妨碍某些 JBoss 组件的工作能力
  4. 我们希望为您提供远程 EJB 和其他可以远程查找的服务的选项

任何人对我如何配置 JBoss 命名服务有任何想法,根据上面的引用,它会覆盖 Tomcat 的 JNDI 实现,以便我可以在 java:comp/env 上进行查找?

仅供参考 - 我的环境 Tomcat 5.5.9,Seam 2.0.2sp,嵌入式 JBoss(Beta 3),

注意:我确实有一个 -ds.xml 文件,用于根据说明正确设置并在类路径上访问我的数据库连接。

另请注意:我已经在嵌入式 Jboss 论坛和 seam 用户论坛中发布了这个问题。

0 投票
2 回答
5507 浏览

jboss - 使用嵌入式 Jboss 运行 JUnit 测试

我需要为使用 ejb3 bean 的类运行 junit 测试。在我们的例子中,仅仅为此目的设置 jboss 不是一种选择,因此我们需要一种替代方法来模拟 ejb 通信。我读过 Embedded Jboss 的 EJB3StandaloneBootstrapper 应该可以做到这一点,但问题是我无法让它正常工作。

我想知道你们中是否有人知道解释所有细节的好教程,包括如何配置各种文件(embedded-jboss-beans.xml、ejb3-interceptor-aop.xml 等)。嵌入式 jboss 包附带了一个带有示例代码的 junit 教程,但是其中的构建脚本失败了。如果您不知道教程,您至少知道在哪里可以找到嵌入式 jboss + junit 的工作示例吗?

0 投票
1 回答
3169 浏览

unit-testing - 有没有人用 Jboss Embedded、Seam 和 Maven 成功运行过集成测试?

一直在尝试使用我的 seam 项目和 Jboss 嵌入式容器进行集成测试,但没有取得多大成功。一直在做大量的阅读,并一直在尝试这个 JIRA中提到的内容,但没有任何运气。

Amy 目前只是试图让“testproject-master-JBSEAM-2371.zip”项目正常工作,但出现以下异常

是否有人在使用 maven 而不是 seam-gen 项目的情况下让 Seam 集成测试正常工作?

0 投票
1 回答
243 浏览

jboss - How to add a jar to the server lib for *embedded* JBoss?

I need to add a crypto provider to the embedded JBoss used by Seam for integration tests.

For the regular JBoss it's a simple matter, just drop the files into the /lib folder of the server instance. With the embedded JBoss, however, things seem to be different. I've tried putting the jars in /embedded-jboss/bootstrap/lib and /embedded-jboss but no change, the classes are not seen.

I've read http://community.jboss.org/wiki/EmbeddedAndJavaSE and also looked in the source of org.jboss.embedded.Bootstrap but I haven't found a way yet. The build is done with Maven if it matters.

Thanks a lot for any suggestions.

0 投票
1 回答
8526 浏览

jboss7.x - 嵌入式 JBoss EAP 6 / AS 7 入门

我正在尝试使用规范中描述的 EJBContainer.createEJBContainer API(JSR 318:Enterprise JavaBeans,版本 3.1,第 22 章:可嵌入用法)中描述的可嵌入 JBoss,而不是使用 JBoss 特定 API的各种前辈。

概述

  • 当我正常调用我的 main 方法时,会话 bean 调用成功。但似乎存在一些类加载问题,因为"java:jboss/UserTransaction"无法将 JNDI 对象转换为 javax.transaction.UserTransaction。
  • 所以我想这里需要JBoss 模块的类加载魔法。通过我的尝试,createEJBContainer 没有找到任何 EJBContainerProviders 并抛出 EJBException。

请注意,并非我的所有问题都需要阅读所有后续详细信息。因此,如果阅读内容过多,请查看问题部分。谢谢!

环境

JBoss AS 7.1.1.Final(jboss-as-7.1.1.Final.zip,仅在standalone.xml 中更改了日志配置)
(最初是 JBoss EAP 6.0.1 GA,这是实际的目标环境 - 同样的问题)
Oracle JDK 1.7 .0_11
Windows 7 教授 64 位

细节

无状态会话 bean

...及其业务接口:

客户端程序

打包

C:\eclipse\projects\HelloWorldSlSB-Client\rt\HelloWorld-API.jar:

C:\eclipse\projects\HelloWorldSlSB-Client\rt\HelloWorld-EJB.jar:

HelloWorld-EJB.jar:META-INF/jboss-deployment-structure.xml:

C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules\test\helloworld\client\main\HelloWorldSlSB-Client.jar:

C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules\test\helloworld\client\main\module.xml:

所有 META-INF/MANIFEST.MF 文件只包含“Manifest-Version: 1.0”。

结果

直接调用

使用-Xmx512m -XX:MaxPermSize=256m类路径 直接调用 HelloWorldEmbeddedEjbTestClient.main

和系统属性

EJB 调用成功,但无法将 JNDI 对象“java:jboss/UserTransaction”强制转换为 javax.transaction.UserTransaction:

(看起来有点奇怪,因为异常被捕获并打印在 main 的末尾。当然,它发生在容器关闭之前。)

调试器显示 JNDI 对象的 getClass().getClassLoader() 是 org.jboss.modules.ModuleClassLoader
ModuleClassLoader for Module "org.jboss.jboss-transaction-spi:main" from local module loader @4b436982 (roots: c:\java\jboss-as-7\modules)
及其 getClass().getInterfaces()[0] /* == interface javax.transaction.UserTransaction */.getClassLoader()但是,UserTransaction.class.getClassLoader() 的类型是
ModuleClassLoader for Module "javax.transaction.api:main" from local module loader @4b436982 (roots: c:\java\jboss-as-7\modules)
sun.misc.Launcher$AppClassLoader。

jboss-modules.jar 调用

java -jar jboss-modules.jar通过带有类路径的org.jboss.modules.Main.main 调用(即还有什么作用)

如上所述的系统属性和参数

它已经在 createEJBContainer 中失败了:

调试显示这是因为在方法 EJBContainer.findAllFactories() 中,在线程上下文类加载器中找不到资源“META-INF/services/javax.ejb.spi.EJBContainerProvider”,即
ModuleClassLoader for Module "test.helloworld.client:main" from local module loader @1afec586 (roots: C:\java\jboss-as-7\modules,C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules)

问题

  • 有谁知道如何解决这个问题或有任何类似的工作?
  • 正常的 JBoss 安装是正确的起点,还是我需要特定的可嵌入变体?
  • UserTransaction 甚至应该在可嵌入场景中使用吗?
    • 如果是,这是否意味着我也可以为 JPA 2 CMT 实体和旧版 JDBC 代码使用一个 XA 数据源?两者都可以参与同一个事务(例如,JDBC 代码以 java.sql.Connection.setAutoCommit(false) 开始 tx,然后使用 TransactionAttributeType.REQUIRED 调用 EJB)?
  • 有人可以指点我一些文件吗?我发现的只是带有 JBoss 特定 API 的旧东西,而不是标准的 EJB 3.1 方式。
    • 最好记录如何在没有任何测试框架的情况下使用,因为我正在评估它以供生产使用。

感谢您阅读全部(或部分:-)!

0 投票
1 回答
1796 浏览

java - 如何从 java 代码在 jboss cli 中启动嵌入式服务器?

我想检查一些 cli 命令是否对 java 有效。我无法使用当前正在运行的配置文件。此外,我根本不能使用正在运行的 Wildfly,因为我必须时不时地重新加载。

所以我想使用offline-cli(带有嵌入式服务器的cli)

我在做什么:

使用连接到 CLiorg.jboss.as.cli.scriptsupport.CLI

通过 cli.cmd 启动嵌入式服务器

但是除了我永远等待这个命令完成(?)之外,什么都没有发生。

我注意到的一件事是,在将我的应用程序部署configuration-management.war到 Wildfly 之后,状态更改为“已部署”。但是,服务无法启动。我没有太注意它,因为在那之后我可以看到我的应用程序的输出。也许这与它有关?

我的mozilla firefox左上角只有那个小小的死亡旋转轮,表明我还在等待响应。

有什么提示吗?