spring整合struts2:struts2报java.lang.UnsupportedOperationException

晏和风
2023-12-01
java.lang.UnsupportedOperationException
	at java.util.Collections$UnmodifiableMap.put(Collections.java:1457)
	at com.opensymphony.xwork2.config.entities.ResultTypeConfig$Builder.addParam(ResultTypeConfig.java:140)
	at org.apache.struts2.convention.ConventionsServiceImpl.disableParse(ConventionsServiceImpl.java:127)
	at org.apache.struts2.convention.ConventionsServiceImpl.getResultTypesByExtension(ConventionsServiceImpl.java:110)
	at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:188)
	at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:951)
	at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:734)
	at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:355)
	at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
	at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
	at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
	at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
	at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
	at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
	at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4708)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

spring整合struts2,将action交给spring管理,在使用注解的时候发生了异常
java.lang.UnsupportedOperationException

Action如下

import org.apache.struts2.convention.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.service.CustomerService;

@Controller()
//多例模式
@Scope("prototype")
@ParentPackage("struts-default")
@Namespace("/")
public class CustomerAction{
    @Autowired
    CustomerService customerService ;
    
    @Action(value="addUI",results={
	    @Result(name="AddUI",type="dispatcher",location="/WEB-INF/jsp/customer/addUI.jsp")
    })
    public String AddUI(){
	
	return "addUI";
    }
    
    public String ListUI(){
	
	return "listUI";
    }
    /*
     * 提供set方法,让spring注入
     */
    public void setCustomerService(CustomerService customerService) {
        this.customerService = customerService;
    }
}

在经历n久的调试后发现,发现问题出现在@action注解上,不知道为什么,一旦使用@action,在启动tomcat时就会报java.lang.UnsupportedOperationException错误,只能放弃用注解来写action

 类似资料: