smartpig911 2009-08-04 00:53
浏览 239
已采纳

SHH 配置问题

点击提交按钮出现的异常. 在action中打断点无反应,应该是在进入之前就产生了此异常
[code="java"]
[ERROR][2009-08-04 00:26:10] -
[org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/extdemo].[action]] -org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) -
-Servlet.service() for servlet action threw exception
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/login' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'userService' of bean class [com.extdemo.struts.action.LoginAction]: Bean property 'userService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Caused by:
org.springframework.beans.NotWritablePropertyException: Invalid property 'userService' of bean class [com.extdemo.struts.action.LoginAction]: Bean property 'userService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:793)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1127)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:270)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:737)
at org.springframework.web.struts.DelegatingRequestProcessor.getDelegateAction(DelegatingRequestProcessor.java:168)
at org.springframework.web.struts.DelegatingRequestProcessor.processActionCreate(DelegatingRequestProcessor.java:146)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:230)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:595)

[/code]

applicationContext.xml
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
        <ref local="sessionFactory" />
    </property>
</bean>
    <bean id="transactionProxyFactory" abstract="true" lazy-init="true"
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
        <ref local="transactionManager" />
    </property>
    <property name="target">
        <ref local="UserDAO" />         
    </property>

    <property name="transactionAttributes">
        <props>             
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            <prop key="insert*">PROPAGATION_REQUIRED</prop>
            <prop key="del*">PROPAGATION_REQUIRED</prop>
            <prop key="add*">PROPAGATION_REQUIRED</prop>
            <prop key="update*">PROPAGATION_REQUIRED</prop> 
            <prop key="create*">PROPAGATION_REQUIRED</prop>         
            <prop key="*">PROPAGATION_REQUIRED, readOnly</prop>
        </props>
    </property>
</bean>

<bean id="hibernateTemplate"
    class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
        <ref local="sessionFactory" />
    </property>
</bean>
<!--==================== DAO======================= -->
<bean id="UserDAO" class="com.extdemo.dao.impl.UserDAO">
    <property name="sessionFactory">
        <ref local="sessionFactory" /> 
    </property>
</bean>
<!--====================Service======================= -->
<bean id="UserService"
    class="com.extdemo.service.impl.UserService">
    <property name="userDAO">
        <ref local="UserDAO" />
    </property>
</bean>
<!--====================Action======================= -->
<bean name="/login" class="com.extdemo.struts.action.LoginAction"
    scope="prototype">
    <property name="userService" >
        <ref local="UserService"/>
    </property>
</bean>

[/code]

IUserService接口类
[code="java"]
public interface IUserService {
public User findUserById(String id);
public List findByUserName(String userName);
public void Save(User user);

}

[/code]
IUserService实现类
[code="java"]
public class UserService implements IUserService {

private IUserDAO userDAO;

public IUserDAO getUserDAO() {
    return userDAO;
}
public void setUserDAO(IUserDAO userDAO) {
    this.userDAO = userDAO;
}

public void Save(User user) {
    userDAO.save(user);
}
public List<User> findByUserName(String userName) {
    List<User> list = userDAO.findByName(userName);
    if (list.size() == 0) {
        return null;
    } else {
        return (List<User>) list.get(0);
    }
}
public User findUserById(String id) {
    return userDAO.findById(id);
}

}

[/code]
action
[code="java"]
public class LoginAction extends Action {

private UserService userService;
public UserService getService() {
    return userService;
}
public void setService(UserService userService) {
    this.userService = userService;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) {
    LoginForm loginForm = (LoginForm) form;
    String username = loginForm.getUsername();
    String password = loginForm.getPassword();
    ActionForward forward = mapping.getInputForward();  
    User user = (User) userService.findByUserName(username);
    if (user.getPassword().equals(password)) {
        forward = mapping.findForward("sucess");
    }
    return forward;
}

}

[/code]

struts-config.xml
[code="java"]


type="com.extdemo.struts.action.LoginAction"
attribute="loginForm" name="loginForm" scope="request">




processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

parameter="com.extdemo.struts.ApplicationResources" />
className="org.springframework.web.struts.ContextLoaderPlugIn">
value="/WEB-INF/classes/applicationContext.xml" />

[/code]

web.xml
[code="java"]

<!-- Spring 配置 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/classes/applicationContext.xml
    </param-value>
</context-param>
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

[/code]

从异常来看 应该是struts和spring的配置问题 以前没接触过spring 所有照搬网上的配置问题无从下手
\
环境 struts1.2+hibernate3.1+spring2.5+tomcat5.5

IDE : lomboz3.2+myeclipse5.5

整了一天,都快1点了.. 帮忙解决下,先谢谢了..
[b]问题补充:[/b]
分给谁呢?? 我晕倒 谢谢3位了。

  • 写回答

3条回答 默认 最新

  • 我不是逗B 2009-08-04 10:27
    关注

    public void setService(UserService userService) {

    this.userService = userService;

    }

    這裏寫得不對,應該是
    public void setUserService(UserService userService) {

    this.userService = userService;

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流