BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #18222同步于 2011/5/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

springmvc + mybatis 求助getbean错误...

TRone
2011/5/8镜像同步14 回复
架个环境都已经好久了...但是在连数据库这里就卡住了... spring的配置文件也加载了,没有报错。 mybatis的配置文件在spring的配置文件中定义了,检查了好多次的配置文件都没有问题啊... 来到context.getBean("***")就抛异常 不知版上是否有懂得配置mybatis的学长学姐,求指点一下啊啊啊~ 谢谢 做的javaweb的一个项目,现在只是一个小小的测试程序,感觉下来的接口都好做,但是现在进行不下去...
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
a6560072机器人#1 · 2011/5/8
你贴下配置文件呗
TRone机器人#2 · 2011/5/8
【 在 a6560072 的大作中提到: 】 : 你贴下配置文件呗 : -- 嗯,我把所有的配置文件都贴出来好了,这样对全局把握可能比较好
TRone机器人#3 · 2011/5/8
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml,/WEB-INF/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
TRone机器人#4 · 2011/5/8
dispatcher-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="helloWorld.do">HelloWorldAction</prop> <prop key="test.do">TestAction</prop> </props> </property> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.InternalResourceView</value> </property> </bean> <bean id="HelloWorldAction" class="gb.actions.HelloWorldAction"> <property name="helloWorld"> <value>HelloWorld</value> </property> <property name="viewPage"> <value>WEB-INF/index.jsp</value> </property> </bean> <bean id="TestAction" class="gb.actions.LoginAction"> <property name="viewPage"> <value>WEB-INF/index.jsp</value> </property> </bean> </beans>
TRone机器人#5 · 2011/5/8
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/groupbuy"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="/WEB-INF/Mybatis-config.xml" /> </bean> <bean id="TestMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="gb.mappers.TestMapper"/> <property name="SqlSessionFactory" ref="SqlSessionFactory"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="testService" class="gb.mappers.implement.TestMapperImplement"> </bean> </beans>
TRone机器人#6 · 2011/5/8
mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/groupbuy"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="/WEB-INF/Mybatis-config.xml" /> </bean> <bean id="TestMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="gb.mappers.TestMapper"/> <property name="SqlSessionFactory" ref="SqlSessionFactory"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> </beans>
TRone机器人#7 · 2011/5/8
【 在 a6560072 的大作中提到: 】 : 你贴下配置文件呗 : -- 这个是文件结构...谢谢
TRone机器人#8 · 2011/5/8
错误与调用出错的地方... org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'TestMapper' is defined org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) root cause org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'TestMapper' is defined org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527) org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075) gb.actions.LoginAction.handleRequest(LoginAction.java:28) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) public class LoginAction implements Controller{ private String word; private String ViewPage; public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { // TODO Auto-generated method stub ApplicationContext context; context = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml"); System.out.println(context); TestMapper testMapper = (TestMapper) context.getBean("TestMapper"); //TestMapperImplement testMapperImpl = new TestMapperImplement(); Test test=testMapper.getTestById(6); String str=test.getPassword(); //System.out.println(str); Map model = new HashMap(); model.put("word",str); return new ModelAndView(getViewPage(),model); } public void setViewPage(String viewPage) { ViewPage = viewPage; } public String getViewPage() { return ViewPage; } public void setWord(String word) { this.word = word; } public String getWord() { return word; } /* public static void main(String[] args){ ApplicationContext context; context = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml"); context.getBean("TestMapper"); }*/ }
hotcode机器人#9 · 2011/5/8
我按自己理解说一下(不确定一定正确,你可以试一下): web-inf 目录应该不属于classpath,所以你把applicationContext.xml等文件放到web-inf时spring其实并没有加载这个文件,你试着把applicationContext.xml等文件放到src目录下试一下 【 在 TRone 的大作中提到: 】 : 架个环境都已经好久了...但是在连数据库这里就卡住了... : spring的配置文件也加载了,没有报错。 : mybatis的配置文件在spring的配置文件中定义了,检查了好多次的配置文件都没有问题啊... : ...................