2016-08-25 46 views
0

我正在嘗試@autowire我的球衣資源類與我的映射器接口,它給予空指針註釋異常,但@autowire在我的調度器控制器中正常工作。我是新來的春天MVC,我只想要一個方法來@autowire我的球衣資源類與我的映射器界面。@Outowire在球衣資源類中給出空指針異常

控制器代碼

@Controller 
public class EmployController { 
    @Autowired 
    EmployMapper employMapper; 

    @RequestMapping("test") 
    public ModelAndView reviewspage() 
    { 
     employMapper.updateMytable("SpringController"); 
      ModelAndView modelAndView = new ModelAndView("test"); 
      return modelAndView; 
    } 
} 

球衣資源類

@Path("/employees") 
@Repository 
public class MyResource { 
    @Autowired 
    EmployMapper employMapper; 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getEmployees(){ 
     employMapper.updateMytable("WebAPiController"); 
     return "Successfuly done"; 
    } 
} 

映射器接口

public interface EmployMapper { 
    public int finduser(@Param("MName") String MName,@Param("password") String password); 
    public int updateMytable(@Param("name") String name); 
} 

春季調度XML

<beans 
    <mvc:annotation-driven /> 
    <context:component-scan base-package="com.controller"/> 
    <bean id = "ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" 
     value="/WEB-INF/" /> 
     <property name="suffix" 
     value=".jsp" /> 
    </bean> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost/employtrackingsystem"/> 
    <property name="username" value="adminXuMPZTn" /> 
    <property name="password" value="IMhzT-AJE47P" /> 
    </bean> 


    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="mapperLocations" value="classpath*:*mappers/EmployMapper.xml"/> 

</bean> 


    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
     <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean> 

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="com.mappers"/> 
</bean> 
</beans> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="3.0" 
     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_3_0.xsd" 
     metadata-complete="false"> 

     <servlet> 
    <servlet-name>spring-dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>spring-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 



      <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.resources</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <url-pattern>/webapi/*</url-pattern> 
    </servlet-mapping> 
    <context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>false</param-value> 
</context-param> 
<context-param> 
    <param-name>resteasy.scan.providers</param-name> 
    <param-value>false</param-value> 
</context-param> 
<context-param> 
    <param-name>resteasy.scan.resources</param-name> 
    <param-value>false</param-value> 
</context-param> 


</web-app> 
+0

分享你的web.xml – Vaibs

+0

@Vaibs我已經添加了我的web.xml以上好心檢查它 –

+0

看到我的評論如下:你的web.xml不指示澤西使用Spring。 – marthursson

回答

1

我的猜測是,你還沒有配置新澤西委託對象生命週期去春來,使用jersey-spring。如果沒有明確地完成,Jersey本身將控制生命週期,這意味着Jersey將實例化你的資源類。

+0

該鏈接沒有幫助我...我需要在web.xml中做什麼更改,以使其與球衣一起工作 –

+0

關鍵在於澤西與Spring打起精彩,你需要配置它不同地,更具體地使用球衣彈簧。關於這個問題的快速谷歌將提供大量的點擊。 – marthursson