标签: jboss7.x

Logback和Jboss 7 - 不能一起工作?

我有一个奇怪的问题.我有一个以前部署在tomcat中的Java应用程序,并且很高兴地使用logback classic作为slf4j实现.现在,当我们尝试在jboss 7.1.final服务器中部署相同的应用程序时,它甚至没有部署应用程序maoning. java.lang.ClassCastException: org.slf4j.impl.Slf4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext 这是令人讨厌的代码行

final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
Run Code Online (Sandbox Code Playgroud)

拥有他的类是弹簧注入而失败 - 因此整个应用程序无法部署.有人有解决方案吗?提前致谢

在查看此站点和其他论坛后,我意识到Jboss 7捆绑了它自己的slf4j实现,并实现LogbackContext在logback中所做的相同ILoggerFactory接口.我们的应用程序尝试获取相同的实例,但应用服务器强加了它自己的slf4j实现.

我试图修改jboss\modules\org\slf4j\impl\main中的module.xml并将其指向logback jar.

<resources>
    <resource-root path="logback-classic-0.9.28.jar"/>
    <resource-root path="logback-core-0.9.28.jar"/>
</resources>
Run Code Online (Sandbox Code Playgroud)

现在,当我启动应用程序时,我遇到了严重的错误

Exception starting filter WicketFilter: java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext cannot be cast to ch.qos.logback.classic.LoggerContext

我没办法.任何jboss和logback专家都可以提供帮助吗?提前致谢

logback jboss7.x

38
推荐指数
3
解决办法
2万
查看次数

如何在jboss-7中更改端口号

我正在使用jboss-7,我想将端口号从8080更改为7001.我需要更改哪个文件?

jboss jboss6.x jboss7.x

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

如何解压缩和重新打包WAR文件

我有一个WAR文件.我想打开它,编辑XML文件,删除一些罐子,然后重新打包.

我使用WINRAR打开WAR文件,然后删除了一些Jars并在WinRar中执行了"添加到存档"并创建了一个WAR.

当我在jboss文件夹中部署WAR时,我得到了一个例外.

   16:05:14,316 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) 
   MSC00001: Failed to start service jboss.deployment.unit."myapplication.war".
   STRUCTURE: org.jboss.msc.service.StartException in 
   service   jboss.deployment.unit."myapplication.war".STRUCTURE: 
   Failed to process phase STRUCTURE of deployment "myapplication.war"
Run Code Online (Sandbox Code Playgroud)

我如何重新包装WAR?

java web-applications war maven jboss7.x

37
推荐指数
3
解决办法
14万
查看次数

在Linux上启动JBoss 7作为服务

以前的JBoss版本包含一个脚本(如jboss_init_redhat.sh),可以复制到/etc/init.d以便将其添加为服务 - 因此它将在启动时启动.我似乎无法在JBoss 7中找到任何类似的脚本.有没有人已经做过这样的事情?

PS我试图在Ubuntu 10.04中实现这一点

linux ubuntu ubuntu-10.04 start-stop-daemon jboss7.x

36
推荐指数
2
解决办法
7万
查看次数

在Jboss AS 7上部署Jersey webapp

目前在Jboss AS 4/5上运行一些webapps,我正在测试迁移到jboss7.当我尝试在JBoss AS 7上部署基于jersey的webapp(带有独立预览配置文件的完整配置文件)时,我得到:

org.jboss.as.server.deployment.DeploymentUnitProcessingException: Only one JAX-RS Application Class allowed.
Run Code Online (Sandbox Code Playgroud)

我已经做了一些搜索,发现RestEasy是嵌入到Application Server中的默认JAX-RS实现.像http://community.jboss.org/message/579996https://issues.jboss.org/browse/JBAS-8830这样的帖子提到RestEasy部署者接管了.

在AS 6中,删除部署者似乎更容易,而我没有看到AS 7的任何解决方案.

migration jboss jersey jboss7.x

33
推荐指数
3
解决办法
5万
查看次数

G1垃圾收集器:Perm Gen无限期地填满,直到执行完整GC

我们在JBoss 7应用服务器上运行了一个相当大的应用程序.在过去,我们使用的是ParallelGC,但它在一些堆大(5 GB或更多)并且通常几乎填满的服务器中给我们带来麻烦,我们会经常得到非常长的GC暂停.

最近,我们对应用程序的内存使用情况进行了改进,并且在少数情况下为应用程序运行的某些服务器添加了更多RAM,但我们也开始切换到G1,希望使这些暂停不那么频繁和/或更短.事情似乎有所改善,但我们看到一种奇怪的行为,以前没有发生过(使用ParallelGC):Perm Gen似乎很快就会填满,一旦达到最大值就会触发Full GC,这通常会导致长时间停顿在应用程序线程中(在某些情况下,超过1分钟).

我们使用512 MB的最大烫发尺寸几个月,在我们的分析中,使用ParallelGC,烫发尺寸通常会在390 MB左右停止增长.然而,在我们切换到G1之后,上面的行为开始发生了.我尝试将最大烫发大小增加到1 GB甚至1.5 GB,但仍然发生了Full GCs(它们只是不那么频繁).

此链接中,您可以看到我们正在使用的分析工具的一些屏幕截图(YourKit Java Profiler).请注意,当触发Full GC时,Eden和Old Gen有很多可用空间,但Perm大小最大.完整GC后,Perm大小和加载类的数量急剧减少,但它们再次开始上升并重复循环.代码缓存很好,永远不会超过38 MB(在这种情况下它是35 MB).

以下是GC日志的一部分:

2013-11-28T11:15:57.774-0300:64445.415:[全GC 2126M-> 670M(5120M),23.6325510秒] [伊甸园:4096.0K(234.0M) - > 0.0B(256.0M)幸存者:22.0M- > 0.0B堆:2126.1M(5120.0M) - > 670.6M(5120.0M)] [时间:用户= 10.16 sys = 0.59,实际= 23.64秒]

您可以在此处查看完整日志(从我们启动服务器的那一刻起,直到完整GC后几分钟).

这是一些环境信息:

java版"1.7.0_45"

Java(TM)SE运行时环境(版本1.7.0_45-b18)

Java HotSpot(TM)64位服务器VM(内置24.45-b08,混合模式)

启动选项: -Xms5g -Xmx5g -Xss256k -XX:PermSize=1500M -XX:MaxPermSize=1500M -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -Xloggc:gc.log

所以这是我的问题:

  • 这是G1的预期行为吗?我在网上发现了另一篇帖子,有人质疑非常相似的内容,并说G1应该在Perm Gen上执行增量收集,但没有答案......

  • 我的启动参数中有什么可以改进/纠正的吗?服务器有8 GB的RAM,但似乎我们缺乏硬件,应用程序的性能在触发完整的GC之前是正常的,那时用户遇到了很大的滞后并开始抱怨.

java garbage-collection g1gc jboss7.x

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

从JBoss 7.1中排除JPA 2.0以使用hibernate 4.3

我想在hossnate 4.3中使用JBoss 7.1中的多租户功能.

我设法通过在jboss-deployment-structure中添加以下行来将它包含在我的战争中

<exclusions>
   <module name="org.hibernate" />
</exclusions>
Run Code Online (Sandbox Code Playgroud)

并在我的pom.xml中为hibernate核心和实体管理器添加依赖项

这使得hibernate 4.3加载但不幸的是我收到了一个错误

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Run Code Online (Sandbox Code Playgroud)

这是由于在hibernate 4.3使用JPA 2.1时加载了JPA 2.0

我已经看过这些线程并尝试了他们的建议 从JBoss EAP 6.1中排除JPA子系统 - 尝试在JBoss EAP 6.1中使用JPA 2.1,JBoss AS7自动加载JPA,Hibernate 4.3.0.Final和Spring Data JPA 1.4.3.RELEASE.

我添加了一个persistence.xml

<property name="jboss.as.jpa.managed" value="false" /> 
Run Code Online (Sandbox Code Playgroud)

从Spring Data中排除了hibernate jpa 2.0

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>${spring-data.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

从JBoss standalone.xml中完全删除了JPA子系统,没有任何成功.

唯一能做到这一点的是在jboss-deployment-structure中排除整个javaee.api,如另一个线程所示

<exclusions>
    <module name="javax.persistence.api"/>
    <module name="javaee.api"/>
</exclusions>
Run Code Online (Sandbox Code Playgroud)

但这会给我的其余代码带来许多问题.

更新:我的jboss-deployment-structure.xml现在是这样的

<jboss-deployment-structure>
<deployment>
    <exclusions>
        <module name="org.slf4j" />
        <module name="org.slf4j.impl" />
        <module name="org.apache.log4j" /> …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa-2.0 jboss7.x jpa-2.1

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

如何使用maven在MANIFEST.MF中为JBoss AS 7生成模块依赖项?

在JBoss AS 7中,依赖于AS中包含的库的Web应用程序必须在META-INF/MANIFEST.MF中声明这些依赖关系,如下所示:

Dependencies: <package-name>
Run Code Online (Sandbox Code Playgroud)

例:

Dependencies: org.slf4j
Run Code Online (Sandbox Code Playgroud)

(这与Import-Package:for OSGi相当.)有关从旧版本迁移,类加载部署的隐式模块依赖关系的文章中可以找到更多信息.

该项目是使用Maven构建的.AS中包含的所有依赖项都使用范围"提供"声明.

现在的问题

有没有一种简单的方法可以使用Maven自动创建这个依赖项列表?

只应包含声明范围"已提供"的依赖项,因为所有其他依赖项已包含在WAR中.

java jboss dependencies maven jboss7.x

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

JBoss 7,java.lang.OutOfMemoryError:PermGen空间

我遇到了这个错误,其中CPU使用率达到极限,JBoss需要重启(java.lang.OutOfMemoryError: PermGen space).

我发现旧的JBoss版本的解决方案可以增加MaxPermSize.我想JBoss7也是如此.

为了不再遇到任何问题,哪个值足够好?有没有办法永久远离这个问题(比如让我们说使用像JRockit这样的其他虚拟机)?

webserver jboss java-ee jboss7.x

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

在JBoss AS7独立部署中加载第三方JAR的最佳实践?

在JBoss-as-7.0.x独立部署中加载第三方JAR的最佳实践是什么?

我试过了:

  1. 使用它自己的module.xml desriptor将每个JAR部署为一个独立的模块;
  2. 在WAR的WEB-INF/lib目录中部署JAR;
  3. 以及跨多个WAR共享的任何JAR的foo.ear/lib目录.

上面方法1的明显优势是在部署时比内容2和方法3减少了内存占用.然而,由于需要在module.xml中显式定义JAR的每个依赖项,因此维护起来似乎相当艰巨.对于大量的第三方库来说,这似乎无法维护.

deployment module jar jboss7.x

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