我有两个豆子,我在第一个注入第二个,但是当我从第二个调用seconde中调用一个方法时,dwr不会知道它,这是我的两个bean和dwr.xml的代码
这是dwr.xml:
<dwr>
<allow>
<create creator="new" javascript="Hello">
<param name="class" value="eu.sorinzo.lc.Hello"/>
</create>
</allow>
</dwr>
Bean hello
package eu.sorinzo.lc;
import eu.sorinzo.lc.common.HelloYou;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@SessionScoped
public class Hello implements Serializable{
@Inject
private HelloYou helloYou;
public String sayMyHello() {
return helloYou.MyHelloYou();
}}
Bean helloYou
package eu.sorinzo.lc.common;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named
@SessionScoped
public class HelloYou implements Serializable{
public String MyHelloYou(){
return "success MyHelloYou";
}}
如果Hello bean的方法sayMyHello返回一条简单的消息,当我调用它时,它工作正常,但如果它返回MyHelloYou()的消息,则会给出错误消息:
console.trace(): engine.js:789
dwr.engine._debug() engine.js:789
dwr.engine._debug() engine.js:789
dwr.engine.defaultErrorHandler() engine.js:180
dwr.engine.remote.handleException() engine.js:921
<anonyme> engine.js line 584 > eval:6
<anonyme> engine.js line 584 > eval:2
dwr.engine._eval() engine.js:584
dwr.engine.transport.xhr.stateChange() engine.js:1632
dwr.engine.transport.xhr.send/batch.req.onreadystatechange() engine.js:1477
"Error: undefined, Error
答案 0 :(得分:0)
在dwr.xml中,您可以使用:
新:使用Java&#39; new&#39;操作
静态:使用&#39; getInstance()&#39;方法(默认情况下)获取类的实例。
无:这不会创建对象。请参阅下文了解原因。 (V1.1 +)
脚本化:通过BSF使用BeanShell或Groovy等脚本语言。
spring :通过Spring Framework提供对bean的访问。
jsf :使用JSF中的对象。 (V1.1 +)
struts :使用struts FormBeans。 (V1.1 +)
页面流:允许从Beehive或Weblogic访问PageFlow。 (V1.1 +)
我认为如果您使用JEE6 CDI,DWR不支持注入,并且它与之前编写的创建者类型一起工作