Java 无法在@ManagedBean中插入cxf服务
我正在使用以下技术进行一个项目-Java 无法在@ManagedBean中插入cxf服务,java,spring,jsf,primefaces,cxf,Java,Spring,Jsf,Primefaces,Cxf,我正在使用以下技术进行一个项目- 春季3.2 CXF 2.2.12 Primefaces 3.5 我已创建并成功发布以下web服务- <bean id="loginService" class="com.cloudsym.service.login.LoginServiceImpl" /> <jaxws:endpoint id="loginServiceWSId" implementor="#loginService" address="/iLoginService" />
<bean id="loginService" class="com.cloudsym.service.login.LoginServiceImpl" />
<jaxws:endpoint id="loginServiceWSId" implementor="#loginService" address="/iLoginService" />
}
当我从index.xhtml调用上述方法时-
<p:commandButton value="Submit" action="#{loginBean.fetchLoginDetails}" ajax="false" />
但是,当我尝试使用ClassPathXmlApplicationContext(注释代码)时,我成功地完成了服务调用并获得了期望的结果
我不知道为什么setter注入不起作用
谢谢在您的LoginController类中,将ILoginService loginService替换为ILoginService loginService客户端;也相应地改变你的变异子。谢谢你的回复,上面的代码没有显示我尝试过的方法。(在这里共享时忘了注释代码)
但是上面的方法不起作用了哈,你在定义bean的客户端xml中包含了吗?我也尝试过,在调试期间,我发现当通过clients-bean.xml解析LoginController类时,LoginController中ILoginService loginService的setter不为null,但当我从
loginService调用fetchLoginDetails方法时,为null,因此引发了NullPointerException。我不确定在定义豆。
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.view.ViewScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.dao.DataAccessException;
import com.service.login.ILoginService;
import com.vo.login.LoginVo;
@ManagedBean(name="loginBean")
@ViewScoped
public class LoginController implements Serializable {
private static final long serialVersionUID = 1L;
ILoginService loginService;
public void fetchLoginDetails() {
try {
//String clientBeansPath = "classpath:com/resources/spring/client-beans.xml";
//ClassPathXmlApplicationContext classPathXmlAppContext = new ClassPathXmlApplicationContext(clientBeansPath);
//classPathXmlAppContext.start();
//ILoginService loginService = (ILoginService)classPathXmlAppContext.getBean("loginServiceClient");
LoginVo loginVo = loginService.getLoginData("1");
System.out.println("IN LOGINCONTROLLER");
} catch (Exception e) {
e.printStackTrace();
}
}
@Autowired
public void setLoginService(ILoginService loginService) {
this.loginService = loginService;
}
<p:commandButton value="Submit" action="#{loginBean.fetchLoginDetails}" ajax="false" />
java.lang.NullPointerException
at com.controller.login.LoginController.fetchLoginDetails(LoginController.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)