2016-07-08 13 views
0

ターゲットに到達できませんでした。識別子が「nullに解決されたBean」例外が発生しました。 JBossの継ぎ目はまだ私たちの会社で使用されているので、私はJBossの継ぎ目に慣れようとしていますSeamアプリケーション - ターゲットに到達できません。識別子 'beanがnullに解決されました。'

Employee.java

import org.jboss.seam.ScopeType; 
import org.jboss.seam.annotations.Name; 
import org.jboss.seam.annotations.Scope; 

@Name("employee") 
@Scope(ScopeType.SESSION) 
public class Employee { 

    private String username; 
    private String password; 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

} 

EmployeeBean.java

import javax.ejb.Remove; 
import javax.ejb.Stateful; 

import org.jboss.seam.ScopeType; 
import org.jboss.seam.annotations.Name; 
import org.jboss.seam.annotations.Scope; 

@Stateful 
@Name("employeeBean") 
@Scope(ScopeType.SESSION) 
public class EmployeeBean { 

    public void addEmployee(Employee employee) { 
     System.out.println(employee.getUsername() + " is added"); 
    } 

    @Remove 
    public void remove(){ 

    } 

} 

EmployeeController.java

import org.jboss.seam.ScopeType; 
import org.jboss.seam.annotations.In; 
import org.jboss.seam.annotations.Name; 
import org.jboss.seam.annotations.Scope; 

@Name("employeeController") 
@Scope(ScopeType.SESSION) 
public class EmployeeController { 

    @In(create = true, required = false) 
    private EmployeeBean employeeBean; 

    @In(create = true, required = false) 
    private Employee employee; 

    public void addNewEmployee() { 
     employeeBean.addEmployee(this.employee); 
    } 

    public EmployeeBean getEmployeeBean() { 
     return employeeBean; 
    } 

    public void setEmployeeBean(EmployeeBean employeeBean) { 
     this.employeeBean = employeeBean; 
    } 

    public Employee getEmployee() { 
     return employee; 
    } 

    public void setEmployee(Employee employee) { 
     this.employee = employee; 
    } 

} 

Register.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:s="http://jboss.com/products/seam/taglib"> 

<head></head> 
<body> 

    <f:view> 
     <h:form> 
      <h:messages /> 
      <s:validateAll> 
       <h:panelGrid columns="2"> 
      Username: <h:inputText 
         value="#{employeeController.employee.username}" required="true" /> 
      Password: <h:inputSecret 
         value="#{employeeController.employee.password}" required="true" /> 
       </h:panelGrid> 
      </s:validateAll> 

      <h:commandButton action="#{employeeController.addNewEmployee()}" 
       value="Register" /> 

     </h:form> 
    </f:view> 

</body> 
</html> 

これを修正するにはどうすればよいですか? "/register.xhtml 17,73 @値=" #{employeeController.employee.username} ": 到達不能、識別子 'employeeController' がヌルに解決標的"

メッセージを

javax.el.PropertyNotFoundException

JSF 2.0とSeam 2.2を使用しています。この例外を解決するために必要な設定ファイルを教えてください。

UPDATE:

のWeb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>seam</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.seam</url-pattern> 
    </servlet-mapping> 
    <context-param> 
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name> 
    <param-value>Mojarra-1.2</param-value> 
    </context-param> 
    <context-param> 
    <param-name>org.richfaces.SKIN</param-name> 
    <param-value>blueSky</param-value> 
    </context-param> 
    <listener> 
    <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> 
    </listener> 
    <filter> 
    <filter-name>Seam Filter</filter-name> 
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>Seam Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <servlet> 
    <servlet-name>Seam Resource Servlet</servlet-name> 
    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Seam Resource Servlet</servlet-name> 
    <url-pattern>/seam/resource/*</url-pattern> 
    </servlet-mapping> 
    <context-param> 
    <param-name>facelets.DEVELOPMENT</param-name> 
    <param-value>true</param-value> 
    </context-param> 
    <context-param> 
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
    <param-value>.xhtml</param-value> 
    </context-param> 
    <security-constraint> 
    <display-name>Restrict raw XHTML Documents</display-name> 
    <web-resource-collection> 
     <web-resource-name>XHTML</web-resource-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </web-resource-collection> 
    <auth-constraint/> 
    </security-constraint> 
</web-app> 
+0

web.xmlファイルを投稿できますか?一般的な原因については[こちら](http://stackoverflow.com/questions/30128395/identifying-and-solving-javax-el-propertynotfoundexception-target-unreachable)を参照してください。具体的な継ぎ目ではありませんが、お手伝いできます。 – SiMag

+0

私はすでにBalusCによってその投稿を見てきましたが、私はそれを機能させるようには見えません。 web.xmlに関する私の更新を見てください – zbryan

答えて

0

目標到達不能、識別子 'employeeController'「ヌルあなたEmployeeControllerが読みとSeam容器に入れていない意味することを決議し

だから、何を。いくつかのデバッグを行うことができます。Seamコンテナが起動すると、ロードされているコンポーネント(Bean)のログが表示されます。

見つからない場合は、継ぎ目があるかどうかを確認してください.propertie s(空のファイル)をルートクラスパスに追加します。 seam.propertiesは、Seamがコンポーネントのスキャンを開始する際の指標です。

関連する問題