[jboss-user] [JBoss Seam] - Got

baccc do-not-reply at jboss.com
Sun Mar 11 21:48:56 EDT 2007


Hi, all.
I am using JBoss 4.0.5 GA with profile EJB3.0, JBoss Seam 1.2 Patch1.
When I deploy my ejb jar file and start up JBoss, I cannot call session beans from JSF pages. I got error message:
javax.faces.el.EvaluationException: /test.jspx @16,80 action="#test.test}": Target Unreachable, identifier 'test' resolved to null

Here is my web.xml:
<?xml version="1.0" ?>
  | <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  |          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  |          version="2.4">
  | 
  |     <!-- Ajax4jsf (must come first!) -->
  |     
  |     <filter>
  |         <display-name>Ajax4jsf Filter</display-name>
  |         <filter-name>ajax4jsf</filter-name>
  |         <filter-class>org.ajax4jsf.Filter</filter-class>
  |     </filter>
  |     
  |     <filter-mapping>
  |         <filter-name>ajax4jsf</filter-name>
  |         <url-pattern>*.seam</url-pattern>
  |     </filter-mapping>
  |     
  |     <context-param>
  |         <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
  |         <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
  |     </context-param>
  |     
  |     <!-- Seam -->
  |     
  |    <listener>
  |       <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
  |    </listener>
  |     
  |     <filter>
  |         <filter-name>Seam Filter</filter-name>
  |         <filter-class>org.jboss.seam.web.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.ResourceServlet</servlet-class>
  |    </servlet>
  |     
  |    <servlet-mapping>
  |       <servlet-name>Seam Resource Servlet</servlet-name>
  |       <url-pattern>/seam/resource/*</url-pattern>
  |    </servlet-mapping>
  |    
  |    <!-- MyFaces -->   
  | 
  |    <listener>
  |       <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  |    </listener>
  |    
  |    <!-- Facelets development mode (disable in production) -->
  |    
  |    <context-param>
  |       <param-name>facelets.DEVELOPMENT</param-name>
  |       <param-value>true</param-value>
  |    </context-param>
  |     
  |    <!-- JSF -->
  |     
  |    <context-param>
  |       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  |       <param-value>client</param-value>
  |    </context-param>
  |     
  |    <context-param>
  |       <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  |       <param-value>.jspx</param-value>
  |    </context-param>
  | 
  |    <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>
  |                   
  |    <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>
  |            <role-name>NONE</role-name>
  |        </auth-constraint>
  |    </security-constraint>
  |    
  | </web-app>

Here is my components.xml:
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <components xmlns="http://jboss.com/products/seam/components"
  | 
  |             xmlns:core="http://jboss.com/products/seam/core"
  |             xmlns:drools="http://jboss.com/products/seam/drools"
  |             xmlns:security="http://jboss.com/products/seam/security"
  | 
  |             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  | 
  |             xsi:schemaLocation=
  | 
  |                 "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-1.1.xsd 
  |                  http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-1.1.xsd
  |                  http://jboss.com/products/seam/security http://jboss.com/products/seam/security-1.1.xsd
  | 
  |                  http://jboss.com/products/seam/components http://jboss.com/products/seam/components-1.1.xsd">
  | 
  | 
  | 
  |    <core:init debug="true" jndi-pattern="license/#{ejbName}/local"/>
  |      
  |    <core:manager concurrent-request-timeout="500" 
  | 
  |                  conversation-timeout="120000" 
  | 
  |                  conversation-id-parameter="cid" 
  | 
  |                  conversation-is-long-running-parameter="clr"/>
  |     
  |    <core:managed-persistence-context name="entityManager"
  |                               auto-create="true"
  |                persistence-unit-jndi-name="java:/licenseEntityManagerFactory"/>
  | 
  | 
  |    <core:ejb installed="false"/>
  |    
  |    <!--drools:rule-base name="securityRules">
  |        <drools:rule-files>
  |            <value>/security.drl</value>
  |        </drools:rule-files>
  |    </drools:rule-base-->
  | 
  |    <security:identity authenticate-method="#{authenticator.authenticate}"
  |                               remember-me="true"/>
  |    
  |    <event type="org.jboss.seam.notLoggedIn">
  |        <action expression="#{redirect.captureCurrentView}"/>
  |    </event>
  |    <event type="org.jboss.seam.postAuthenticate">
  |        <action expression="#{redirect.returnToCapturedView}"/>
  |    </event>
  |         
  |    <!-- For use with jBPM pageflow or process management -->
  |    <!--  
  |    <core:jbpm>
  |       <core:process-definitions></core:process-definitions>
  |       <core:pageflow-definitions></core:pageflow-definitions>
  | 
  |    </core:jbpm>
  |    -->
  |       
  | </components>

Here is my faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
  | <!DOCTYPE faces-config PUBLIC
  |           "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  |           "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
  | 
  | <faces-config>
  | 
  |    <application>
  | 
  |       <message-bundle>messages</message-bundle>
  |       <!-- Disabled when using Ajax4JSF -->
  |       <!--
  |       <view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler>
  |       -->
  |    </application>
  | 
  |    <!-- Seam transaction management -->
  |    <lifecycle>
  |       <phase-listener>org.jboss.seam.jsf.TransactionalSeamPhaseListener</phase-listener>
  |    </lifecycle>
  |     
  |    <!-- No Seam transaction management -->
  |    <!--  
  |    <lifecycle>
  |       <phase-listener>org.jboss.seam.jsf.SeamPhaseListener</phase-listener>
  |    </lifecycle>
  |    -->
  | 
  | </faces-config>

Here is my session ejb:
import javax.ejb.Local;

@Local
  | public interface ITest {
  | 		public void destroy();
  | 		public void test();
  | 	}

import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | 
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Scope;
  | 
  | import org.jboss.seam.annotations.Destroy;
  | 
  | @Stateful
  | @Scope(ScopeType.SESSION)
  | @Name("test")
  | public class Test implements ITest
  | {
  |    public void test(){
  | 	   System.out.println("Hi, Session Bean..................");
  | 	   
  |    }
  | 
  |    
  |    
  |    @Destroy @Remove
  |    public void destroy(){
  | 	   
  |    }
  | 
  | }

Finally, here is my page:
<?xml version="1.0" encoding="GBK"?>
  | <html                           xmlns:jsp="http://java.sun.com/JSP/Page"
  | 				xmlns:c="http://java.sun.com/jsp/jstl/core"
  | 				xmlns="http://www.w3.org/1999/xhtml"
  | 	    		        xmlns:ui="http://java.sun.com/jsf/facelets"
  | 	  			xmlns:h="http://java.sun.com/jsf/html"
  | 	  			xmlns:f="http://java.sun.com/jsf/core"
  | 	  			xmlns:s="http://jboss.com/products/seam/taglib"
  | 				template="template.xhtml">
  |   <head>
  |     <title>Test</title>
  |   </head>
  |   <body>
  |     <f:view>
  |       <h:form>
  |         <h:commandButton type="submit" value="Register" action="#{test.test}"/>
  |       </h:form>
  |     </f:view>
  | 
  |     
  |   </body>
  | </html>

I really infrustrated by this problem. I have been working on this problem for days. Help me please........

Thank you all in advance.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4027017#4027017

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4027017



More information about the jboss-user mailing list