我在使用hornetQ的ubuntu上使用jboss AS 6 Final
我使用管理面板在名为Message Buffer Queue的服务器上创建了一个新的Queue.
我收到以下错误:
Unable to validate user: guest for check type CONSUME for address jms.queue.MessageBufferQueue
Run Code Online (Sandbox Code Playgroud)
这是我的文件:
package org.jboss.ejb3timers.example;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.UUID;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
public class TestClass {
ConnectionFactory Hconnection=null;
Queue q=null;
Connection Hconn=null;
Context lContext=null;
MessageConsumer messageConsumer=null;
MessageProducer messageProducer=null;
javax.jms.Session session=null;
/** …
Run Code Online (Sandbox Code Playgroud) 我有一个在jboss 6.1上运行的应用程序,它基于已经存在于数据库中的信息在启动时定义了很多dinamyc定时器(例如每分钟doSomething).计时器基于以下信息创建:
TimerConfig timerConfig = new TimerConfig();
timerConfig.setInfo(info);
timerConfig.setPersistent(false);
Timer timer = timerService.createCalendarTimer(scheduleExpression,
timerConfig);
Run Code Online (Sandbox Code Playgroud)
今天我发现创建的"每分钟"计时器不再起作用了.检查昨天的日志,我发现这个奇怪的错误(下面的完整strack跟踪)
Error invoking timeout for timer: [id=32b0902e-d1ee-4090-9938-98349a20340d timedObjectId=jboss.j2ee:ear=myear.ear,jar=myjar.jar,name=AppScheduler,service=EJB3 auto-timer?:false persistent?:false
timerService=org.jboss.ejb3.timerservice.mk2.TimerServiceImpl@4036a060 initialExpiration=Thu Jan 17 00:00:00 GMT-02:00 2013 intervalDuration(in milli sec)=0 nextExpiration=Sun Jan 20 06:06:00 GMT-02:00 2013 timerState=IN_TIMEOUT:
javax.ejb.ConcurrentAccessTimeoutException: EJB 3.1 PFD2 4.8.5.5.1
concurrent access timeout on [advisedMethod=public void my.app.AppScheduler.process(javax.ejb.Timer), unadvisedMethod=public void my.app.AppScheduler.process(javax.ejb.Timer), metadata=null, targetObject=my.app.AppScheduler@97672ba, arguments=[Ljava.lang.Object;@3f661630]
- could not obtain lock within 5MINUTES
at org.jboss.ejb3.concurrency.aop.interceptor.ContainerManagedConcurrencyInterceptor.invoke(ContainerManagedConcurrencyInterceptor.java:176) [:1.0.0-alpha-4]
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86) [jboss-aop.jar:2.2.2.GA]
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.2.GA]
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) [:1.7.21]
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) …
Run Code Online (Sandbox Code Playgroud) 当我尝试将jbosseap6.3安装为服务时.我得到了以下错误.任何人都对以下错误有任何想法.任何一个光明灯都意味着它对我很有帮助.
java.lang.IllegalArgumentException: Failed to instantiate class "org.jboss.logmanager.handlers.PeriodicRotatingFileHandler" for handler "FILE"
at org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:119)
at org.jboss.logmanager.config.LogContextConfigurationImpl.doPrepare(LogContextConfigurationImpl.java:338)
at org.jboss.logmanager.config.LogContextConfigurationImpl.prepare(LogContextConfigurationImpl.java:291)
at org.jboss.logmanager.config.LogContextConfigurationImpl.commit(LogContextConfigurationImpl.java:300)
at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:542)
at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:97)
at org.jboss.as.logging.logmanager.ConfigurationPersistence.configure(ConfigurationPersistence.java:149)
at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:300)
at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:262)
at java.util.logging.LogManager$3.run(LogManager.java:399)
at java.util.logging.LogManager$3.run(LogManager.java:396)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:396)
at java.util.logging.LogManager.access$800(LogManager.java:145)
at java.util.logging.LogManager$2.run(LogManager.java:345)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:338)
at java.util.logging.LogManager.getLogManager(LogManager.java:378)
at org.jboss.modules.Main.main(Main.java:443)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:117)
... 18 more
Caused by: java.io.FileNotFoundException: C:\jboss-eap-6.3\standalone\log\server.log (The process cannot access the file because it is …
Run Code Online (Sandbox Code Playgroud) 我目前正在将旧的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) 尝试将JAX-WS Maven项目部署到JBOSS6.0.0时,我遇到以下错误.
17:45:03,451 ERROR [[/isp]] Error configuring application listener of class com
sun.xml.ws.transport.http.servlet.WSServletContextListener: java.lang.NoClassDe
FoundError: javax/servlet/ServletContextAttributeListener
at java.lang.ClassLoader.findBootstrapClass(Native Method) [:1.6.0_24]
at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:927)
[:1.6.0_24]
...
Run Code Online (Sandbox Code Playgroud)
我的Pom文件具有以下依赖关系:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.1.4</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我尝试将jar文件放在common/lib,/ lib或/ lib/endorsed中但仍然得到相同的结果.
很多人都遇到过这个问题而且有很多答案,但我发现并尝试过的都没有.
更新
所以,我尝试将lib放在WEB-INF/lib中.这消除了以前的错误.但是,现在出现了一个新错误.这是堆栈跟踪:
09:00:46,353 ALLVARLIG [http] WSSERVLET11: failed to parse runtime descriptor: j
ava.lang.NoClassDefFoundError: com/sun/xml/stream/buffer/XMLStreamBuffer: java.l
ang.NoClassDefFoundError: com/sun/xml/stream/buffer/XMLStreamBuffer
at com.sun.xml.ws.server.EndpointFactory.generateWSDL(EndpointFactory.ja
va:424) [:2.1.4]
at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.
java:196) [:2.1.4]
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467) [:2.
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强制消息顺序
我在Centos 5.6服务器上对JBoss 6进行远程JMX调用时遇到问题.我以前能够在Debian服务器上运行相同的应用程序时执行此操作.
./twiddle.sh --server=service:jmx:rmi:///jndi/rmi://SERVER:1090/jmxconnector invoke foo:service=bar baz
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
Run Code Online (Sandbox Code Playgroud)
如果我在SERVER上本地运行它,则相同的调用成功.我用iptables打开了端口1090,我可以通过telnet连接到SERVER:1090.hostname -i
返回正确的IP地址.
我也尝试过使用JBoss -Djava.rmi.server.hostname=localhost
.如果我这样做,那么我得到一个不同的例外:
Caused by: java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2327)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:279)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
at org.jboss.console.twiddle.Twiddle.createMBeanServerConnection(Twiddle.java:322)
at org.jboss.console.twiddle.Twiddle.connect(Twiddle.java:331)
at org.jboss.console.twiddle.Twiddle.access$400(Twiddle.java:60)
at org.jboss.console.twiddle.Twiddle$1.getServer(Twiddle.java:217)
Run Code Online (Sandbox Code Playgroud) 当我添加服务器时,您可以在此检查此警告.请帮帮我.谢谢
我正在尝试更新我在6.4.20 JBoss补丁之后使用的Jackson版本.我正在使用org.codehause.jackson
,com.fasterxml.jackson
据我所知,JBoss 6.4.x并没有为新版本提供隐式依赖.
假设这jackson-mapper-asl-1.9.9.redhat-6
是用于此补丁的有效包是否合适?当滚动到6.4.20公告的noarch部分时,我看到codehaus-jackson-mapper-asl-1.9.9-12.redhat_6
提到了.这是否意味着这是推荐的版本?我可以看到它是在05/14/18发布的,并且公告是在05/15/18发布的.
目前,我遇到了以下错误作为codehause-jackson-mapper-asl
与之关联fasterxml-jackson-databind
,导致我相信我使用的版本不正确.
16:01:22,620 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n](http-127.0.0.1:8080-1)RESTEASY000100:执行POST/find失败:org.jboss.resteasy.spi.ReaderException:
org.codehaus.jackson.map.JsonMappingException:反序列化的非法类型:出于安全原因而被阻止
[...]
引起:org.codehaus.jackson.map.JsonMappingException:非法类型[...]反序列化:出于安全原因阻止org.codehaus.jackson.map.deser.BeanDeserializerFactory.checkLegalTypes(BeanDeserializerFactory.java:1521)[jackson -mapper-asl-1.9.9.redhat-6.jar:1.9.9.redhat-6]`