环境:JDK1.6  weblogic10.3  EJB3.0  JSF1.2  WEB2.5 
无法注入EJB 
TestEvent.java Java codepackage com.nec.jp.sdetest.jsf;import javax.ejb.EJB;import com.nec.jp.sdetest.ejb.ITestEjbLogicBean;
import com.nec.jp.sdetest.ejb.TestEjbInputData;
import com.nec.jp.sdetest.ejb.TestEjbResultData;public class TestEvent  implements java.io.Serializable{   @EJB(name="TestEarProject/TestEjbLogicBean/local")   // ITestEjbLogicBean iTestEjbLogicBean=new TestEjbLogicBean();
   ITestEjbLogicBean iTestEjbLogicBean;    public String select1 (){
        //ELResolverを取得します。
        //javax.faces.context.FacesContext facesContext = javax.faces.context.FacesContext.getCurrentInstance();
        //javax.el.ELContext elcontext = facesContext.getELContext();
        //javax.faces.application.Application application = facesContext.getApplication();
        //指定したManagedBeanを返します。
        //Object managedBean = application.getELResolver().getValue(elcontext, null, "ManageBeanName");        // own from
        javax.faces.context.FacesContext facesContext = javax.faces.context.FacesContext.getCurrentInstance();
        javax.el.ELContext elcontext = facesContext.getELContext();
        javax.faces.application.Application application = facesContext.getApplication();
        TestForm managedBean = (TestForm)application.getELResolver().getValue(elcontext, null, "TestForm");
        TestEjbInputData inputData = new TestEjbInputData();
        inputData.setInputCd(managedBean.getInputCd());
        TestEjbResultData resultData = iTestEjbLogicBean.execute(null, inputData);
        String price = resultData.getPrice().toString();
        managedBean.setPrice(price);
        
        return "next";
        // return null;
        // own to
    }
}
ITestEjbLogicBean.java Java code
package com.nec.jp.sdetest.ejb;import com.nec.jp.sdetest.ejb.*;import javax.ejb.Local;
import javax.ejb.TransactionAttribute;@Local
public interface ITestEjbLogicBean {    public com.nec.jp.sdetest.ejb.TestEjbResultData execute(
        com.nec.jp.sdetest.ejb.ContextData context,
        com.nec.jp.sdetest.ejb.TestEjbInputData inputData);
}
TestEjbLogicBean.java Java code
package com.nec.jp.sdetest.ejb;import java.sql.SQLException;
import java.util.List;import com.nec.jp.sdetest.db.ProductDAO;
import com.nec.jp.sdetest.db.ProductDTO;
import com.nec.jp.sdetest.ejb.*;import javax.ejb.TransactionAttribute;
import javax.ejb.Stateless;/**
 *  TestEjbLogicBean LogicBeanクラス
 */
@Stateless
public class TestEjbLogicBean implements com.nec.jp.sdetest.ejb.ITestEjbLogicBean{    public TestEjbLogicBean(){
        
    }
    
    
    @TransactionAttribute
    public com.nec.jp.sdetest.ejb.TestEjbResultData execute(
        com.nec.jp.sdetest.ejb.ContextData context,
        com.nec.jp.sdetest.ejb.TestEjbInputData inputData){
        
        com.nec.jp.sdetest.ejb.TestEjbResultData resultData = new com.nec.jp.sdetest.ejb.TestEjbResultData();
        
        // own from
        
        List<ProductDTO> list = null;
        ProductDTO dto = new ProductDTO();
        ProductDAO productDAO = new ProductDAO();
        dto.setIN1(inputData.getInputCd());
        try {
            list = productDAO.read(dto);
        } catch (SQLException e) {
        }
        resultData.setPrice(list.get(0).getPRICE());
        
        // own to        return resultData;
    }
}

解决方案 »

  1.   

    JBoss下部署工程运行正常,weblogic下部署工程时EJB的注入出错
    @EJB(name="TestEarProject/TestEjbLogicBean/local") 
    ITestEjbLogicBean iTestEjbLogicBean; 
    TestEjbResultData resultData = iTestEjbLogicBean.execute(null, inputData); 
    调用时iTestEjbLogicBean=null。
    注掉@EJB(name="TestEarProject/TestEjbLogicBean/local")申明对象去new接口的实现类ITestEjbLogicBean iTestEjbLogicBean=new TestEjbLogicBean(); 工程运行正常
      

  2.   

    weblogic的输出信息2009/03/06 20:56:12 com.sun.faces.config.ConfigureListener contextInitialized
    情報: Initializing Mojarra (1.2_09-b02-FCS) for context '/TestWebProject'
    2009/03/06 20:56:12 com.sun.faces.spi.InjectionProviderFactory getProviderInstance
    致命的: JSF1030: The specified InjectionProvider implementation 'com.bea.faces.WeblogicInjectionProvider' cannot be loaded.
    2009/03/06 20:56:12 com.sun.faces.spi.InjectionProviderFactory createInstance
    情報: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods ed with these annotations will have said annotations processed.
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON' found, using default value false
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.SAVE_FORM_SUBMIT_LINK_IE' found, using default value false
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.RENDER_VIEWSTATE_ID' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.STRICT_XHTML_LINKS' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getLongInitParameter
    情報: No context init parameter 'org.apache.myfaces.CONFIG_REFRESH_PERIOD' found, using default value 2
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.VIEWSTATE_JAVASCRIPT' found, using default value false
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.DETECT_JAVASCRIPT' found, using default value false
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.AUTO_SCROLL' found, using default value false
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getStringInitParameter
    情報: No context init parameter 'org.apache.myfaces.ADD_RESOURCE_CLASS' found, using default value org.apache.myfaces.renderkit.html.util.DefaultAddResource
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getStringInitParameter
    情報: No context init parameter 'org.apache.myfaces.RESOURCE_VIRTUAL_PATH' found, using default value /faces/myFacesExtensionResource
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    情報: No context init parameter 'org.apache.myfaces.CHECK_EXTENSIONS_FILTER' found, using default value true
    2009/03/06 20:56:49 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig createAndInitializeMyFacesConfig
    情報: Starting up Tomahawk on the RI-JSF-Implementation.
    2009/03/06 20:56:51 com.sun.faces.application.ActionListenerImpl processAction
      

  3.   

    Weblogic输出的错误信息:致命的: java.lang.NullPointerException
    javax.faces.el.EvaluationException: java.lang.NullPointerException
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    at javax.faces.component.UICommand.broadcast(UICommand.java:387)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    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:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
    at com.nec.jp.sdetest.jsf.TestEvent.select(TestEvent.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    ... 23 more
    2009/03/06 20:56:51 com.sun.faces.lifecycle.InvokeApplicationPhase execute
    警告: #{TestEvent.select}: java.lang.NullPointerException
    javax.faces.FacesException: #{TestEvent.select}: java.lang.NullPointerException
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
    at javax.faces.component.UICommand.broadcast(UICommand.java:387)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    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:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    ... 22 more
    Caused by: java.lang.NullPointerException
    at com.nec.jp.sdetest.jsf.TestEvent.select(TestEvent.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    ... 23 more
      

  4.   

    @EJB(name="TestEarProject/TestEjbLogicBean",beanInterface =TestEjbLogicBean.class);
    试下;
      

  5.   

    搞定了,缺少依赖的jar包,具体是依赖哪个没时间研究,各位同仁有兴趣的研究下。
    用到的jar包:
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\log4j-1.2.15.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\javassist-3.4.ga.zip
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\asm.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\dom4j-1.6.1.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\hibernate3.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\jta-1.1.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\antlr-2.7.6.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\slf4j-api-1.5.6.ja
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\cglib-2.1.3.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\slf4j-jdk14-1.5.6.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\javax.jsf_1.2.0.0.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\glassfish.jstl_1.2.0.1.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\glassfish.jsf_1.2.3.2.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\spring.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\commons-logging-1.1.1.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\commons-logging-api-1.1.jar
    set CLASSPATH=%CLASSPATH%;E:\bea\wlserver_10.3\server\lib\commons-collections-3.2.1.jar
      

  6.   

    摔倒.....
    呵呵,EJB的引用和依赖注入都不错