我正在尝试将基于Spring MVC的REST应用程序迁移到Jboss 7.1.0.在启动时,Jboss初始化显示一切都已正确启动,所有war文件都已成功部署.
我在Spring MVN和Jboss的RestEasy服务之间进行集成时遇到了很多问题,我想知道这是否是jboss resteasy与Spring MVN之间的另一个冲突.
当我向REST服务发出请求时,我收到以下错误:
12:52:31,541 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-5) Root WebApplicationContext: initialization completed in 3035 ms
12:52:31,845 INFO [org.jboss.web] (MSC service thread 1-5) JBAS018210: Registering web context: /MyRestService
12:52:31,875 INFO [org.jboss.as] (MSC service thread 1-5) JBAS015874: JBoss AS 7.1.0.Final "Thunder" started in 53526ms - Started 390 of 468 services (72 services are passive or on-demand)
12:52:32,034 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "MyRestService.war"
12:54:10,117 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/MyRestService]] (http--127.0.0.1-8080-1) StandardWrapper.Throwable: java.lang.RuntimeException: Unable to find a …
Run Code Online (Sandbox Code Playgroud) 我目前正在从jboss 4.3迁移到jboss 7.1.1(最终版),我正在尝试配置oracle数据源,但它无法正常工作.以下是我为设置oracle数据源所做的工作
1)下载ojdbc6-11.jar并将其放在$ JBOSS_HOME/modules/com/oracle/ojdbc6/main文件夹中
2)在$ JBOSS_HOME/modules/com/oracle/ojdbc6/main下创建了文件module.xml,这是文件的内容
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)
3)在standalone.xml中添加了以下驱动程序和数据源
<drivers>
<driiver name="oracle" module="com.oracle.ojdbc6">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
<datasource jndi-name="java:/Altis" pool-name="Altis" enabled="true" use-java-context="true">
<connection-url>connurl</connection-url>
<driver>oracle</driver>
<security>
<user-name>username</user-name>
<password>passwd</password>
</security>
</datasource>
</datasources>
Run Code Online (Sandbox Code Playgroud)
但是,当我部署我的war文件时,我收到以下错误
16:54:43,281 INFO [org.jboss.as.server] (HttpManagementService-threads - 2) JBA
S015870: Deploy of deployment "altisavante.war" was rolled back with failure mes
sage {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.na
ming.context.java.module.altisavante.altisavante.env.Altisjboss.naming.context.j
ava.AltisMissing[jboss.naming.context.java.module.altisavante.altisavante.env.Al
tisjboss.naming.context.java.Altis]"]}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我有独立的Java客户端(在eclipse中运行),我希望连接到外部服务器.如果服务器是localhost,那么我看不出任何问题.但是每当我尝试连接到外部服务器时,我总是会遇到以下异常
- JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
- Could not register a EJB receiver for connection to remote://10.160.148.61:4447
java.lang.RuntimeException: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
Run Code Online (Sandbox Code Playgroud)
我试图使用JNDI从远程客户端执行EJB调用的步骤
异常告诉我,与身份验证相关的配置文件有问题.这是我的ejb_client_properties文件
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=10.160.148.61
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=tan
remote.connection.default.password=f2b1c3c7d3f1e224cbf6508494cf0418
Run Code Online (Sandbox Code Playgroud)
注意:用户tan将添加到服务器上的mgt.user.properties文件中.我使用add-user.bat在服务器中添加用户.我还添加了一个应用程序用户.我使用相同的凭据传递给服务器.我想不出别的什么.
我的ejb电话如下:
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
InitialContext aJNDI = new InitialContext(jndiProperties);
Ppi handle = (Ppi) aJNDI
.lookup("ejb:PPIEAR/PService/PConnect!com.gem.p.PConnection?stateful");
Run Code Online (Sandbox Code Playgroud)
我看到许多线程与异常相关但无法修复它:(有人可以帮助.
我还在服务器上安装了合法的SSL证书.我是否需要做一些额外的事情来照顾它?
另请注意:我的服务器以独立模式运行.
我正在将2个EAR部署到JBoss AS 7.1.0.Alpha1-SNAPSHOT(后7.0.1.Final版本)上.两者部署都很好.
我在其中一个EAR中的JAR中打包了一个EJB Singleton类:
@Startup
@Singleton
// one of @Local(Store.class), @Remote(Store.class), @LocalBean
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
@Transactional(TransactionPropagation.SUPPORTS)
public class StoreFront implements Store {
...
public interface Store {
...
Run Code Online (Sandbox Code Playgroud)
在部署时,它表示EJB绑定到:
"java:app/store-core-2011.1.2-SNAPSHOT/StoreFront"
"java:app/store-core-2011.1.2-SNAPSHOT/StoreFront!uk.co.magus.jam.store.core.Store"
"java:module/StoreFront"
"java:module/StoreFront!uk.co.magus.jam.store.core.Store"
"java:global/store-ear-2011.1.2-SNAPSHOT/store-core-2011.1.2-SNAPSHOT/StoreFront!uk.co.magus.jam.store.core.Store"
"java:global/store-ear-2011.1.2-SNAPSHOT/store-core-2011.1.2-SNAPSHOT/StoreFront"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.当我尝试通过JNDI从OTHER部署的EAR中的JAR内的非CDI非EJB类查找它时,它只能在'global'下的JNDI名称上找到 - 再次,预期.
但是,当我尝试将结果对象强制转换为实际的接口类时:
Object lookupObject = new InitialContext().lookup(jndiName);
Store store = (StoreFront)lookupObject;
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
11:17:52,402 ERROR [jam.core.link.LinkListener] (Thread-45) Exception when casting to Store after lookup with [java:global/store-ear-2011.1.2-SNAPSHOT/store-core-2011.1.2-SNAPSHOT/StoreFront]: java.lang.ClassCastException: jam.store.core.Store$$$view1 cannot be cast to jam.store.core.Store
at jam.core.link.LinkListener.getStore(LinkListener.java:108) [core-jar-2011.1.2-SNAPSHOT.jar:]
at jam.core.link.LinkListener.postLoad(LinkListener.java:27) [core-jar-2011.1.2-SNAPSHOT.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_07]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) …
Run Code Online (Sandbox Code Playgroud) 有人有SLF4J/logback与JBoss 7一起工作吗?
以前,通过在[server]/conf中放置我的"logback.groovy",以及在logback核心,经典(0.9.28)和Groovy(1.8.0)JAR中,我能够让我的应用程序在JBoss 5.1中运行[服务器]/lib中.
对于JBoss 7.0.1,我已经设置了Groovy和logback模块(已经创建了.index文件),我的EAR的MANIFEST.MF声明了对两个模块的依赖关系,我的"logback.groovy"部署在我的我的EAR中的WAR模块的WEB-INF/classes.EAR肯定部署好 - 灯是绿色的......
尽管如此,实际应用的唯一日志记录规则是在"standalone.xml"中设置的标准console/server.log.是的,我可以看到我的日志语句(因此SLF4J正在运行),但我的注销规则,追加者等被忽略了.在任何日志记录中都没有引用logback或Groovy,所以我假设我没有做足够的事情来触发logback的加载并找到我的脚本.
还有其他我可以尝试的东西,但是知道其他人是否尝试过这个会很好.如果他们没有,或许这是一个迹象,我应该抛弃我的JBoss Logging?
要替换遗留服务,我感兴趣的是在两个不同的HTTP端口号上有两个不同的webapp,例如,8080 - > webapp1(浏览器服务),8200 - > webapp2(REST,新版本使用RESTEasy).每个都是该端口号上的"根上下文".
这个网站上的"标准"答案与JBoss 5有关,JBoss 5是历史上的两个主要版本,并且具有大量的配置格式变化.
我正在使用JBoss AS 7.0.2.Final和"独立"部署.有人这样做,可以共享使用的配置吗?谢谢.
目前我们的生产环境运行JBoss 5.1,我们一直在争论它是否值得迁移到JBoss 7.1.如果它是一个简单的服务器升级,那么它不会是一个问题.但是,不幸的是,我们必须改变配置,这需要付出一些努力.此外,我们的服务器在一个集群中运行,我读到JBoss 7.1有更多的集群支持.
它值得与否?
谢谢
我正在编写一个Java EE 6 Web应用程序,我注意到在使用注入对象与直接创建和使用对象时会对性能产生重大影响.每个方法调用的开销似乎是50-60ms.
例如,使用非注入150方法调用大约需要500毫秒,而使用注入对象150方法调用需要12,000 - 13,000毫秒.一个数量级的差异然后一些.
这通常吗?
我在JBoss AS 7.1.1 final上运行,它使用Weld来处理CDI.
注入的对象被定义为单例bean(通过javax.ejb.Singleton注释).这会导致部分问题吗?或者只是Weld代理导致减速?
我想使用Maven来构建和部署远程EJB.稍后,我希望能够将此EJB注入并使用到单独的WAR项目中.
所以我想我需要一个定义接口的jar文件,并在两个项目中使用jar(ejb和war).
我有一个名为example:api
jar 的Maven项目中的这个接口:
package example;
import javax.ejb.Remote;
@Remote
public interface Bean {
void process();
}
Run Code Online (Sandbox Code Playgroud)
我在另一个名为example:ejb
ejb的Maven项目中实现了上面的接口:
package example;
import javax.ejb.Stateless;
@Stateless
public class Ejb implements Bean {
@Override
public void process() {
}
}
Run Code Online (Sandbox Code Playgroud)
ejb项目使用maven-ejb-plugin
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这两个项目依赖于javaee-api
:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
现在将它们放在一起,我制作了第三个Maven项目,称为example:ear
打包为ear
:
<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>example</groupId>
<artifactId>ear</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>ear</packaging>
<name>ear</name>
<dependencies>
<dependency>
<groupId>example</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version> …
Run Code Online (Sandbox Code Playgroud) 我有Java EE项目,我在JBoss 7(Windows)上使用JUnit进行Arquillian测试.测试工作正常,但我无法调试它们.
从我用Google搜索(https://community.jboss.org/wiki/WhyDontBreakPointsWorkWhenDebugging)我知道Arquillian测试正在单独的VM中运行,因此IntelliJ无法调试它们.我需要IntelliJ通过socket远程连接到那台机器,但我不知道该怎么做.
我找到了这个帖子:在IntelliJ中使用Arquillian进行调试 - 托管容器但是我不知道如何让它工作.
我也跨过了这个帖子:http://devnet.jetbrains.com/message/5253623?tstart = 0所以我希望在我的pom.xml中填充appropriet surefire部分,但它没有帮助:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<debugForkedProcess>true</debugForkedProcess>
<skip>false</skip>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
请问有人如何在这样的配置中调试测试吗?