论坛首页 Java版 Spring

webwork-2.2.2与Spring-1.2.6结合失败

浏览 5461 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2006-04-04
请问这是为什么?我用了scud的方法一,如果改称2.1.7的话可行。

我的web.xml如下:
[code:1]<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<display-name>WW</display-name>

<!-- START SNIPPET: example -->
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
<listener-class>
com.atlassian.xwork.ext.ResolverSetupServletContextListener
</listener-class>
</listener>

<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>com.opensymphony.webwork.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

<!-- START SNIPPET: taglib -->
<!--
This typically isn't required, as the taglib is included in webwork.jar.
If you really need a taglib configuration within web.xml, copy webwork/src/java/META-INF/taglib.tld
to the WEB-INF directory as webwork.tld.
-->
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>/WEB-INF/lib/webwork-2.2.2.jar</taglib-location>
</taglib>

</web-app>[/code:1]
直接从例子程序里面考出来的,applicationContext.xml
[code:1]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="autodetect">
<bean id="helloBean" class="com.ww.test.HelloBean" singleton="true" />
<!-- add your spring beans here -->
</beans>[/code:1]
xworl.xml如下:
[code:1]<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">

<xwork>
<include file="webwork-default.xml"/>

<package name="default" extends="webwork-default"
externalReferenceResolver="com.opensymphony.xwork.spring.SpringExternalReferenceResolver">
<interceptors>
<interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/>
<interceptor-stack name="myDefaultWebStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="reference-resolver"/>
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="myDefaultWebStack"/>

<action name="hello" class="com.ww.test.HelloAction">
<external-ref name="helloBean">helloBean</external-ref>
<result name="success">/WEB-INF/pages/hello.jsp</result>
</action>
</package>
</xwork>[/code:1]
HelloAction:
[code:1]import com.opensymphony.xwork.ActionSupport;

public class HelloAction extends ActionSupport {

private String message;
private HelloBean helloBean;

@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
message = helloBean.getMsg();
return SUCCESS;
}

public String getMessage() {
return message;
}

public void setHelloBean(HelloBean helloBean) {
this.helloBean = helloBean;
}

}
[/code:1]
HelloBean:
[code:1]public class HelloBean {

private String msg = "HelloWorld";

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}



}[/code:1]
没有任何错误显示不知道怎么回事
   
时间:2006-04-04
他总要提示这个东西,不知道为什么

[com.opensymphony.webwork.dispatcher.DispatcherUtils]-[INFO] Could not load portlet-api, disabling webwork's portlet support.
   
0 请登录后投票
时间:2006-04-04
没有任何错误显示不知道怎么回事

没有错误显示不是很好么,呵呵。

到底是什么地方不正常????
   
0 请登录后投票
时间:2006-04-05
xxboy 写道
他总要提示这个东西,不知道为什么

[com.opensymphony.webwork.dispatcher.DispatcherUtils]-[INFO] Could not load portlet-api, disabling webwork's portlet support.


 楼主是不是用了在xwork中extends="webwork-portlet-default"而没有

把portlet-api.jar这个包放进来! 另外你的webwork.propertis是不是有

webwork.objectFactory = spring这个声明呢,如果有不如用sucd的另一个

方法通过SpringObjectFactory的autoWire实现webwork和spring的整合,

这是webwork2.2推荐的做法啊,无需借助第三方的包。也很简洁。你要确保

webwork.properties中声明了:
[code:1]webwork.objectFactory = spring
webwork.objectFactory.spring.autoWire = name[/code:1]
然后把你web.xml和xwork.xml中atlassian的声明删除。其余保持不变!

参考:http://forum.javaeye.com/viewtopic.php?t=16120
   
0 请登录后投票
时间:2006-04-06
原来项目中用的是2.2.1是没有任何问题的。换成2.2.2其他都没有改动,就会出现楼主所说的问题。

现象是这样的:
在2.2.2初始化时
17:10:24,578 INFO [WebWorkSpringObjectFactory] Initializing WebWork-Spring integration...
17:10:24,578 INFO [SpringObjectFactory] Setting autowire strategy to name
2006-4-6 17:10:24 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2006-4-6 17:10:24 org.apache.catalina.core.StandardContext start
严重: Context startup failed due to previous errors

在2.2.1初始化时
17:13:10,281 INFO [WebWorkSpringObjectFactory] Initializing WebWork-Spring integration...
17:13:10,281 INFO [SpringObjectFactory] Setting autowire strategy to name
17:13:10,281 INFO [WebWorkSpringObjectFactory] ... initialized WebWork-Spring integration successfully

看上去似乎是2.2.2时用webwork.objectFactory.spring.autoWire = name时会出问题。我没有试过用其他的方式因为用其他的方式我的Spring都初始化不成功。

不知道是不是Bug。其他人难道就没有遇到类似的情况吗?
   
0 请登录后投票
时间:2006-04-06
不知道楼主的问题解决没有?
   
0 请登录后投票
时间:2006-04-06
我找到我的原因了,我只替换了2.2.2中的webwork.jar而没有替换2.2.2中的xwork.jar!
   
0 请登录后投票
时间:2006-04-19
xwork.jar 替换成什么? 我用最新的1.1.3还是报告:
引用
严重: Errorfilter Start
   
0 请登录后投票
时间:2006-04-19
原来我是再加载这个filter的时候报错。
com.opensymphony.webwork.dispatcher.FilterDispatcher

加载调用的类是com/opensymphony/util/ClassLoaderUtil,这个类根本不在webwork.jar里面,只在oscore.jar里面。。
   
0 请登录后投票
时间:2006-04-19
现在大伙推荐的方法我都试过,都不是很理想,大伙都不要老谈怎么怎么做,把详细的配置文件都列出来就有说服力了,同时也能帮助好多人:如webwork.xml,applicationContext.xml,webwork.property等等。
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛: