JSeam remoting实现ajax的菜鸟问题
mycoy
2009-03-02
大家好:
我现在正在学习jseam的remoting实现ajax的功能,但是联一个最简单的demo都没有调通。 java代码: @Local public interface HelloLocal { @WebRemote public String sayHello(String name); } @Stateless @Name("helloAction") public class HelloAction implements HelloLocal { public String sayHello(String name) { return "Hello, " + name; } } xhtml页面: <script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script> <s:remote include="helloAction" /> <script type="text/javascript"> //<![CDATA[ function sayHello() { //var name = prompt("What is your name?"); var name = 'zwz'; Seam.Component.getInstance("helloAction").sayHello(name, sayHelloCallback); } function sayHelloCallback(result) { alert(result); } // ]]> </script> <button onclick="javascript:sayHello()"> Say Hello </button> faces-config.xml文件: <?xml version="1.0" encoding="UTF-8"?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> </application> </faces-config> components.xml文件: <core:init jndi-pattern="java:comp/env/jboss-seam-remoting/#{ejbName}/local" debug="true"/> <core:manager conversation-timeout="120000" concurrent-request-timeout="500" conversation-id-parameter="cid"/> <component name="org.jboss.seam.remoting.remoting"> <property name="debug">true</property> </component> web.xml文件: <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> <!-- JSF and Facelets --> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>true</param-value> </context-param> <!-- Faces Servlet --> <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> <ejb-local-ref> <ejb-ref-name> jboss-seam-remoting/HelloAction/local </ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local>org.jboss.seam.example.remoting.HelloLocal</local> </ejb-local-ref> 但是程序部署运行时,总是提示javascript错误,说找不到Seam对象的方法。 其实,程序基本是从jseam的demo考贝的。 我使用jseam2.1.1 , JBoss AS 5.0 如果哪位大师有可用的简单的例子,可不可以发份给我:zw_z7@hotmail.com 请大家指教,谢谢。 |
|
andyhan
2009-03-03
@WebRemote 干嘛放Local接口上? 那样就需要多加一个js的引用,完全没有必要一定要使用EJB来实现Remote吧?
<script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script> <script type="text/javascript" src="seam/resource/remoting/interface.js?sayHello"></script> |
|
mycoy
2009-03-05
To andyhan:
是不一定,但是也不至于出错吧?请问你有例子吗,能否给我发一份啊: zw_z7@hotmail.com 谢谢 |
|
andyhan
2009-03-09
mycoy 写道 To andyhan:
是不一定,但是也不至于出错吧?请问你有例子吗,能否给我发一份啊: zw_z7@hotmail.com 谢谢 Seam 不是有自带的例子吗? |