当前位置: 首页 > 知识库问答 >
问题:

Liberty:中间上下文不存在:jms/xyz

简俊楚
2023-03-14

我正在努力将耳朵应用程序迁移到自由。它是一个使用 JMS 和 MQ 消息传递提供程序的 Web 应用程序。

例如,在我的stage.config中。xml,我们有以下属性:

MQQueue(0).CCSID 
MQQueue(0).baseQueueName 
MQQueue(0).jndiName 
MQQueue(0).name 
MQQueueConnectionFactory(0).CCSID 
MQQueueConnectionFactory(0).channel 
MQQueueConnectionFactory(0).connectionPool.ConnectionPool(0).maxConnections 
MQQueueConnectionFactory(0).description 
MQQueueConnectionFactory(0).host 
MQQueueConnectionFactory(0).jndiName 
MQQueueConnectionFactory(0).name
MQQueueConnectionFactory(0).port
MQQueueConnectionFactory(0).provider
MQQueueConnectionFactory(0).queueManager
MQQueueConnectionFactory(0).sessionPool.ConnectionPool(0).maxConnections
MQQueueConnectionFactory(0).transportType
<featureManager>
        <feature>jsp-2.3</feature>
        <feature>localConnector-1.0</feature>
        <feature>jndi-1.0</feature>
        <feature>jdbc-4.1</feature>
        <feature>samlWeb-2.0</feature>
        <feature>wasJmsClient-2.0</feature>
        <feature>wasJmsClient-1.1</feature>
         <feature>wmqJmsClient-1.1</feature>
        <feature>jndi-1.0</feature>
        <feature>jmsMdb-3.1</feature>
 
    </featureManager>
    
    <featureManager>
         <exclude>jsf-2.2</exclude>
    </featureManager>
    
    <variable name="wmqJmsClient.rar.location"                    
      value="${server.config.dir}/wmq/wmq.jmsra.rar"/>
      
   <jmsQueue id="1533A.TRANSPORT.ASSIGNMENT.RESP" jndiName="jms/xyz/queue/transportAssignment/response"></jmsQueue>
  <jmsQueue id="1533A.TRANSPORT.ASSIGNMENT.RQST" jndiName="jms/xyz/queue/transportAssignment/request"></jmsQueue>
  <jmsQueueConnectionFactory jndiName="jms/xyz" id="xyz_qa_QCF">
    <connectionManager maxPoolSize="10"/>
    <properties.wmqJms providerVersion="unspecified" transportType="CLIENT" applicationName="xyz" channel="CLIENTS.xyz" hostName="host123.GOT.hst.NET" queueManager="xyz141Q" CCSID="1208"/>
  </jmsQueueConnectionFactory>

异常I获取:NameNotFoundException:中间上下文不存在:jms/xyz

有没有人可以指导一下,我在Server.xml中必须使用哪些参数/配置才能让它工作。好心帮忙。

共有2个答案

朱通
2023-03-14

我假设您将使用资源适配器,因此请从阅读 IBM 文档中的 Liberty 和 IBM MQ 资源适配器开始。

当您开始配置像IBM记录的那样的东西,但仍然无法工作时,请发布自由配置和您得到的完整异常,以便我们再次帮助您。

闻人河
2023-03-14

您的server.xml有几个问题:

  • 重复jndi-1.0功能
  • 混合wasJmsClientwmqJmsClient-如果您只使用mq而不是删除is
  • wasJmsClient的混合版本-如果您也需要连接到内部队列,请仅使用一个
  • <代码>

根据注释更新
检查您如何使用JMS类。

下面是我用来连接MQ的配置和代码:

server.xml片段:

    <feature>jms-2.0</feature>

Java发送消息的代码:

@ApplicationScoped
public class JMSHelper {
    private static Logger logger = Logger.getLogger(JMSHelper.class.getName());
    
    @Inject
    @JMSConnectionFactory("jms/myapp/NotificationQueueConnectionFactory")
    private JMSContext jmsContext;
    
    @Resource(lookup = "jms/myapp/NotificationQueue")
    private Queue queue;
    
    @Transactional
    void invokeJMS(Object json) throws JMSException, NamingException {

        String contents = json.toString();
        logger.info("Sending "+contents+" to "+queue.getQueueName());
        jmsContext.createProducer().send(queue, contents);
        logger.info("JMS Message sent successfully!");
    }
    
}
 类似资料:
  • 我正在尝试使用activeMq作为具有开放自由的JMS的代理。我设法在队列中获取消息,但我的激活规范从未触发。我在日志中读到了以下内容。 这是我的server.xml配置jms部分

  • 我的web.xml是由eclipse生成的,看起来如下所示: 那么这里的问题是什么呢?

  • 我似乎不能在本地工作,即使同样的WAR在远程服务器上也能工作。当我在本地访问我的应用程序时,我得到了“没有找到上下文根”的错误。自由档案版本是8.5.5.5。 以下是相关文件: 服务器.xml 留言.log ibm-web-bnd.xml ibm-web-ext.xml

  • 您好,我正在使用visual studio Professional2015,我创建了一个MVC5项目,但我有3个错误: 名称“viewbag”在当前上下文中不存在 名称“RenderBody”在当前上下文中不存在 名称“RenderSection”在当前上下文中不存在 我正在使用MVC5,我在网上搜索,找到了很多解决方案,但他们不适合我的情况。 这是\views\web.config 这是\we

  • 问题内容: 尝试使用WebMatrix启动网站时出现此错误。我有一个.cs文件可以拨打电话。 我的项目中有一个名为“ dbase”的数据库。自从使用WebMatrix启动网站以来,我没有web.config文件,也没有使用WebMatrix包的导入,因此我认为我不需要它们。我需要将代码包装在Razor标签中吗?这也给我造成了错误。 是什么原因造成的?有人对此有任何解决方案吗? 问题答案: 您需要一

  • 我试图查找一个JMS TopicConnectionFactory使用JNDI在WebSphere应用服务器。我已经在服务器中正确地完成了jndi设置。我已经在服务器中部署了我的应用程序。 我为发送方/接收方/监听器设计了3个java类。在服务器中部署WAR之后,我首先尝试将接收器代码作为独立的java应用程序运行。然而,它失败了,错误如下: 线程“main”javax中出现异常。命名。NoIni