gpt4 book ai didi

java - 从 EJB 访问 SipFactory

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:36 24 4
gpt4 key购买 nike

我正在使用 Mobicents SipServlets 2.1.547 和 JBoss AS 7.2.0。我需要将 SipFactory 注入(inject) EJB 中,并且使用 @Resource 注释,当我尝试访问 SipFactory 时,它总是会导致 NullPointerException。此时,我的 bean 中有 @Resource SipFactory sf 。这有什么理由行不通吗?注入(inject) SipFactory 以便我可以从我的 bean 访问它的正确方法是什么?

更新:我在 @Resource 注释中设置了映射名称,现在 JBoss 在部署时出现以下错误:

JBAS014775:    New missing/unsatisfied dependencies:
service jboss.naming.context.java.jboss.java:sip."com.mycompany.testproject.testapp".SipFactory (missing) dependents: [service jboss.naming.context.java.module.test."test-sip-1.0.0-SNAPSHOT".env."com.mycompany.testproject.testapp.ManagerBean".sf]

ManagerBean.java:

@Resource(mappedName="java:sip/com.mycompany.testproject.testapp/SipFactory")
private SipFactory sf;

sip.xml:

    <?xml version="1.0"?>
<sip-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jcp.org/xml/ns/sipservlet http://www.jcp.org/xml/ns/sipservlet/sip-app_1_1.xsd" version="1.1">
<display-name>TEST SIP Servlet</display-name>
<description>TEST SIP Servlet</description>
<app-name>com.mycompany.testproject.testapp</app-name>

<servlet-selection>
<main-servlet>
TestServlet
</main-servlet>
</servlet-selection>

<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.mycompany.testproject.testapp.TestServlet</servlet-class>
<init-param>
<param-name>servertest</param-name>
<param-value>sip:siptest@127.0.0.1:5080</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</sip-app>

最佳答案

您是否尝试设置映射名称?类似于下面的这段代码,您将应用程序名称部分替换为 sip.xml 部署描述符中的应用程序名称。

@Resource(mappedName="java:sip/appname/SipFactory")
private SipFactory sipFactoryResource;

关于java - 从 EJB 访问 SipFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com