我目前正在将旧的Web应用程序从JBoss As 4.2.2 迁移到6.0.0(AS6).在AS6中,我们有一种专有格式,用于通过名为的文件记录应用程序jboss-logging.xml
.
在阅读了一些内容(http://community.jboss.org/wiki/SeparatingApplicationLogs)后得出的结论是"(...)从JBoss AS 6.0.0.M2开始,能够根据应用程序记录单独的日志文件,将以不同的方式实施"并且一旦实施准备就绪,文档"(...)将更新更多细节".
但是我能够在我的server/log
目录中创建特定的应用程序日志文件,它是使用目录中的主joboss-logging.xml
文件完成的server/deploy
.这与我的应用程序所需的模块化不兼容.
所以这里有一个问题,当我为我的应用程序创建一个jboss-logging.xml
我的WEB-INF
目录时,这个配置:
<?xml version="1.0" encoding="UTF-8"?>
<logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0" context="myApp">
<define-context name="myApp" />
<periodic-rotating-file-handler
file-name="${jboss.server.log.dir}/myApp.log"
name="WEBAPP" autoflush="true" append="true" suffix=".yyyy-MM-dd">
<error-manager><only-once/></error-manager>
<formatter>
<pattern-formatter pattern="%d %-5p [%c] (%t) %s%E%n"/>
</formatter>
</periodic-rotating-file-handler>
<root-logger>
<!-- Set the root logger priority via a system property, with a default value. -->
<level name="${jboss.server.log.threshold:INFO}"/>
<handlers>
<handler-ref name="WEBAPP"/>
</handlers> …
Run Code Online (Sandbox Code Playgroud) 我想设置<consumer-window-size/>
为0
.这似乎是另一个问题(具有多个消费者的JMS队列)的答案,并在本文的第17.1.1节中进行了描述.我使用JNDI检索连接工厂.我hornetq-jms.xml
看起来像这样:
<configuration xmlns="urn:hornetq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
<connection-factory name="ConnectionFactory">
<connectors>
<connector-ref connector-name="netty-connector"/>
</connectors>
<entries>
<entry name="ConnectionFactory"/>
</entries>
<consumer-window-size>0</consumer-window-size>
</connection-factory>
<queue name="my.qeue">
<entry name="/queue/test"/>
</queue>
</configuration>
Run Code Online (Sandbox Code Playgroud)
该部分<connection-factory/>
是从上面的链接复制和粘贴,但我收到错误:
DEPLOYMENTS IN ERROR:
Deployment "org.hornetq:module=JMS,name="ConnectionFactory",
type=ConnectionFactory" is in error due to the following reason(s):
HornetQException[errorCode=104 message=There is no connector with
name 'netty-connector' deployed.]
Run Code Online (Sandbox Code Playgroud)
这可能与JBoss-6相关,因为在其他环境中这似乎有效:用HornetQ强制消息顺序
我已经专业地使用Java应用程序服务器五年了,但我只经历了两个供应商:Weblogic和JBoss,主要是最后一个.
专注于JBoss我目前正在将一些应用程序从4.2.2版本迁移(或至少尝试)到6.x系列的第一个"稳定"版本.但是,我觉得问题比我预期的要复杂得多.类加载,日志记录,启动过程,所有接缝都发生了变化,我相信它会更好,但总会像这样?
所以我质疑自己其他真正的替代品是什么?现有的替代品有同样的问题吗?
你可能会问我用什么功能来要求像JBoss这样的应用服务器:目前是JMS,XA Transactions,Datasources.
我的问题是我有一个Web应用程序构建并作为WAR文件部署到JBoss 6.我的servlet无法在我的应用程序中加载一个类并抛出NoClassDefFoundError.
我确认此类存在于WAR文件的正确位置.我的所有应用程序类都存在于WEB-INF/classes文件夹中,以及我的servlet类,它可以毫不费力地执行.事实上,似乎只有这一类不在类路径上,因为应用程序的其他方面运行良好.
JBoss在JDK 1.6_21上运行,应用程序是用JDK 1.6_24构建的,这应该不是问题吧?
此外,这个应用程序在Eclipse中本地运行良好,当我将WAR文件部署到单独的Tomcat 7和Glassfish 3服务器时,他们都发现这个类没有问题.
我不希望任何人立刻知道什么是错的,如果有人在此之前看到过这样的事情请分享你的经验,或者如果你有很好的技巧或知道好的工具,真的深入到类路径问题然后请分享.
我有一个带@Lob
注释的简单EntityBean .如果我删除这个注释,我在JBossAS 6.0.0.Final和MySQL5上没有错误.但是如果我用它注释@Lob
(因为mt
在我的情况下包含大约100到5000个字符),如果我坚持实体,我在测试环境中会出错.
@Lob
:mt
映射到VARCHAR@Lob
:mt
映射到LONGTEXT(这是我想要的,但是我得到了错误)这是我的实体:
@Entity
@Table(name = "Description")
public class Description implements Serializable
{
public static final long serialVersionUID=1;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Lob
private String mt;
} // ... getter/setter
Run Code Online (Sandbox Code Playgroud)
错误在这里:
...
Caused by: org.hibernate.exception.GenericJDBCException: could not insert
[my.Description]
...
Caused by: java.sql.SQLException: Connection is not associated with a managed
connection.org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@3e4dd
...
Run Code Online (Sandbox Code Playgroud)
我真的不知道为什么我会得到这个(可重现的)错误.环境似乎没问题,许多其他测试都通过了,它甚至可以在没有@Lob
注释的情况下工作.
这个问题与JPA有关:如何将String保存到数据库字段中,键入MYSQL Text,其中@Lob …
JBoss 6.0 Final附带了JBoss WS(默认情况下为Apache CXF堆栈),我知道我可以用JBossWS下载站点中相应的JBoss WS Native或Metro版本替换默认实现.
问题是,我有一个客户端jar库(不幸的是二进制文件),它使用了一些专有的SOAP Web服务.当我使用部署到JBoss的Web应用程序中的客户端API时,我遇到了大量间歇性SOAP故障(使用Apache CXF和JBoss Native堆栈进行测试).
由于从独立的jar文件(没有第三方JAX-WS实现)运行时,相同的Web服务似乎工作正常,所以我考虑禁用JBoss WS堆栈,转而使用Java SE提供的本机JAX-WS RI堆栈6.
我知道JBoss Metro WS堆栈应该与Java SE 6附带的内容足够接近,但如果我能使用本机Java SE版本,我将非常感激.
那么,这可行吗?有人指出了方向吗?
我有一个在JBoss AS6中运行的应用程序.身份验证正在使用"FORM"身份验证方法,并且用户正在正确登录.
我希望能够在用户成功登录时调用一段自定义静态代码.
不幸的是,我找不到任何监听器,钩子或回调,它们会在成功登录时执行代码.HttpSessionListener确实有一个"sessionCreated"事件,但是一旦用户访问任何页面就会调用它,即使他们没有成功登录.这意味着即使查看登录表单也会触发事件.
任何人都可以向我指出JBoss AS 6(或同等版本)的一些文档,它们展示了如何在用户首次成功登录时运行自定义代码?
提前致谢.
我需要在运行时读取 standalone.xml 中定义的所有数据源数据,我需要服务器、用户、传递等(所有数据)手动(通过 jdbc 或其他方式)连接到每个数据源。
例如,如果我有一个文件:standalone.xml 像这样:(有 2 个数据源 def ..)
1)
<xa-datasource jndi-name="java:jboss/datasources/MyDS1" pool-name="MyDSPool1" enabled="true">
<xa-datasource-property name="URL">
jdbc:mysql://localhost:3306/mydb
</xa-datasource-property>
<driver>mysql</driver>
<security>
<user-name>myuser</user-name>
<password>mypass</password>
</security>
</xa-datasource>
<xa-datasource jndi-name="java:jboss/datasources/MyDS2" pool-name="MyDSPool2" enabled="true">
Run Code Online (Sandbox Code Playgroud)
2)
<xa-datasource-property name="URL">
jdbc:mysql://localhost:3306/mydb
</xa-datasource-property>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</xa-datasource>
Run Code Online (Sandbox Code Playgroud)
然后..在我的 EAP 应用程序中,在我的 servlet(我的 EAP 应用程序的入口点)中,我需要读取 standalone.xml(物理文件),然后获取每个数据源信息并连接到每个数据库。(我不需要在任何 EJB 模块的 EJB 类中注入数据源,我只需要动态读取 standalone.xml(在运行时)并通过 jdbc 连接到每个数据源。我需要读取/循环定义的所有数据源在standalone.xml中并在那一刻通过jdbc连接到每个人(在servlet中)我知道如何通过ejb类中的注释或jndi使用数据源,但我真的需要首先打开/读取standalone.xml(使用getResourceAsStream ? 或类似的东西)并连接到其中定义的每个数据源(应用程序可以使用的所有可能的数据源),例如通过 jdbc 连接到每个数据源)并进行一些检查!
所以基本上我需要的是:在servlet中动态访问/读取StandAlone.xml,(所有数据源数据)。解析它或其他东西,获取所有数据源定义,使用从 standalone.xml 读取的数据通过 jdbc 连接到每个数据源,做一些检查,仅此而已。那可能吗?我正在使用 Jboss EAP 6.2。
谢谢
我对keycloak很新,所以我可能会问一个非常基本的问题.
无论如何,问题如下:
我已经将我的JBoss安装与keycloak saml适配器集成在一起.它安装正确,Jboss工作正常.在此之后,我更新了我的应用程序以包含keycloak_saml.xml并将web.xml中的auth方法更新为KEYCLOAK-SAML.这完全符合keycloak官方文档.我在keycloak_saml.xml中使用实体ID中的URI,例如:/ wapps/myapp
部署和应用程序启动成功.但是,当我测试时,我收到500错误,错误消息是无效的重定向URI.
我能够看到响应头中的重定向URI为空.有没有人见过这个问题.我无法访问keycloak saml服务器,因此无法检查服务器端的设置.
请帮忙.
谢谢!!Pulkit
问题1:Angular 2应用程序部署在JBOSS服务器上但无法加载静态内容(js/css).问题是网站是在它自己的上下文(localhost:8080/sample /)下托管的,而静态资源在index.html中引用为(link href ="css/index.css"rel ="stylesheet")但是它没有得到在对localhost:8080/css/index.css进行网络调用时加载.
我需要它指向localhost:8080/sample/css/index.css
问题2:或者我们尝试在tomcat上托管角度应用程序,但服务需要托管在jboss上,我们尝试实现CROS过滤器(https://amodernstory.com/2014/12/27/using-cors-headers-with-java-示例/)但第一个请求通过但其他请求在Chrome网络的标签中显示待处理状态.