Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从EJB访问SipFactory_Java_Servlets_Ejb_Jboss7.x_Mobicents Sip Servlets - Fatal编程技术网

Java 从EJB访问SipFactory

Java 从EJB访问SipFactory,java,servlets,ejb,jboss7.x,mobicents-sip-servlets,Java,Servlets,Ejb,Jboss7.x,Mobicents Sip Servlets,我将Mobicents SipServlets 2.1.547与JBoss AS 7.2.0一起使用。我需要将SipFactory注入EJB,并且使用@Resource注释,当我尝试访问SipFactory时,它总是导致NullPointerException。此时,我的bean中有@Resource-SipFactory-sf。 这有什么原因不起作用吗?注入SipFactory的正确方法是什么,这样我就可以从我的bean访问它 更新:我在@Resource注释中设置了映射名称,现在JBoss在

我将Mobicents SipServlets 2.1.547与JBoss AS 7.2.0一起使用。我需要将SipFactory注入EJB,并且使用@Resource注释,当我尝试访问SipFactory时,它总是导致NullPointerException。此时,我的bean中有
@Resource-SipFactory-sf
。 这有什么原因不起作用吗?注入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>

测试sipservlet
测试sipservlet
com.mycompany.testproject.testapp
TestServlet
TestServlet
com.mycompany.testproject.testapp.TestServlet
服务器测试
抿:siptest@127.0.0.1:5080 
1.
1.

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

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

嗨,珍,谢谢你的回答。我确实尝试设置映射名称,这导致部署期间出现JBoss错误,所以我想这就是问题的根源。错误如下:
JBAS014775:新缺少/未满足的依赖项:service jboss.naming.context.java.jboss.java:sip.Smsfapp.SipFactory(缺少)
我在sip.xml中仔细检查了我的应用程序名称,该部分似乎是正确的。我想我在sip.xml中遗漏了什么?感谢您的支持。您能从中再尝试一次最新版本吗?另外,如果你可以上传一个带有war的示例应用程序EAR和再现问题的源代码,那将是非常肯定的,我将尝试制作一个再现错误的示例应用程序,并让你知道。