账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Weblogic JMS异常
    75
    0

    公司一个上古老项目,最近需要新增功能,为了开发Webservice,我把老系统的Weblogic升级到了10,jdk1.6.
    不过,系统一些旧的业务,会涉及到数据同步到另一个系统中,那个系统的weblogic是8,jdk1.4. 以往没出现过问题。

    但在新环境下,我测试旧的业务,发现数据同步无法进行,定位到在InitialContext(property)的过程中,根据另一个系统的ip进行初始化时候会失败。对方系统报错信息如下:

    <2018-7-5 上午03时27分00秒 GMT> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed>
    weblogic.rjvm.BubblingAbbrever$BadAbbreviationException: Bad abbreviation value: '256' - with nested exception:[java.lang.NullPointerException]
    java.lang.NullPointerException

        at weblogic.rjvm.BubblingAbbrever.getValue(BubblingAbbrever.java:152)
        at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:46)
        at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:212)
        at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext(MsgAbbrevInputStream.java:237)
        at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:744)
        at weblogic.rjvm.http.HTTPServerJVMConnection.dispatch(HTTPServerJVMConnection.java:399)
        at weblogic.rjvm.http.TunnelSendServlet.service(TunnelSendServlet.java:25)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
        at weblogic.kernel.Kernel.execute(Kernel.java:343)
        at weblogic.servlet.internal.WebAppServletContext.dispatch(WebAppServletContext.java:3656)
        at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:784)
        at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:285)
        at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:105)
        at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    
    

    公司系统报错:

    com.qel.arch.service.ServiceLocatorException

    at com.qel.arch.service.ServiceLocator.getInstance(ServiceLocator.java:47)
    at com.qel.qqjg.twolevel.gen.OperDelegate.initializeHome(OperDelegate.java:29)
    at com.qel.qqjg.twolevel.gen.OperDelegate.<init>(OperDelegate.java:17)
    at com.qel.qqjg.twolevel.oper.DelegateFactory.createOperDelegate(DelegateFactory.java:34)
    at com.qel.qqjg.twolevel.util.OperUtils.update(OperUtils.java:88)
    at com.qel.qqjg.twolevel.oper.OperRCSESubmit.updateTwoLevel(OperRCSESubmit.java:162)
    at com.qel.qqjg.twolevel.oper.OperRCSESubmit.execute(OperRCSESubmit.java:135)
    at jsp_servlet._information._imp.__submit._jspService(__submit.java:251)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    

    网上找到的类似问题都说是weblogic版本问题导致的,已经尝试将本地的weblogic.jar包替换为对方系统的方案,但还是无法解决,请大家帮帮忙。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 浪荡一生钟情一人 普通会员 1楼

      WebLogic JMS (Java Message Service) is a messaging middleware for Java applications that allows communication between different components of a Java application, including applications, databases, and other enterprise systems. JMS provides a standard mechanism for exchanging messages between different systems and allows for the creation, management, and delivery of messages between them.

      Here are some common JMS exceptions that you might encounter in a WebLogic JMS environment:

      1. MessageSourceException: This exception is thrown when a JMS message source is unable to create a message or find a message to be sent. This can occur when the JMS provider or component does not have the necessary permissions to create the message or the message is not yet available in the JMS provider's message queue.

      Example: java MessageSourceException messageSourceException = new MessageSourceException("JMS provider does not have the necessary permissions to create a message");

      1. JMSException: This exception is thrown when an error occurs during the execution of a JMS operation, such as sending a message, consuming a message, or handling a message. This can include issues with authentication, security, or other constraints that prevent the JMS provider from completing the operation.

      Example: java JMSException jmsException = new JMSException("Message sending failed: Invalid authentication token");

      1. MessageDeliveryException: This exception is thrown when an attempt to deliver a message fails due to a problem with the JMS provider's delivery mechanism, such as a network issue or a message not being available in the specified queue.

      Example: java MessageDeliveryException messageDeliveryException = new MessageDeliveryException("Message delivery failed: JMS delivery queue is empty");

      1. MessageNotAvailableException: This exception is thrown when a JMS message is not available in the JMS provider's message queue, even after it has been sent or consumed.

      Example: java MessageNotAvailableException messageNotAvailableException = new MessageNotAvailableException("Message not available in queue: Queue name is 'queue-name' and message ID is 'message-id'");

      1. JMSExceptionNoUniqueConsumerSubscriptions: This exception is thrown when a JMS consumer does not have a unique subscription to the JMS message, causing the consumer to receive duplicate messages.

      Example: java JMSExceptionNoUniqueConsumerSubscriptions jmsExceptionNoUniqueConsumerSubscriptions = new JMSExceptionNoUniqueConsumerSubscriptions("Consumer 'consumer-name' does not have a unique subscription to the JMS message 'message-id'");

      1. JMSExceptionSubscriptionLost: This exception is thrown when a JMS subscription to a JMS message is lost due to the JMS provider discontinuing the subscription, such as when the subscription is terminated by the consumer.

      Example: java JMSExceptionSubscriptionLost jmsExceptionSubscriptionLost = new JMSExceptionSubscriptionLost("Subscription 'subscription-name' to JMS message 'message-id' has been lost");

      These are just a few examples of the JMS exceptions that you might encounter in a WebLogic JMS environment. Each exception represents a specific issue with the JMS provider or JMS component, and understanding the cause of the exception is essential for troubleshooting and resolving the issue. You can create custom exception classes or use the JMSException class provided by the JMS provider to handle more complex JMS-related errors.

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部