【发布时间】:2015-05-05 19:03:32
【问题描述】:
我的用户服务为空 如何解决?坦克 ;)
java.lang.NullPointerException
at com.what.now.rest.RestCreateUser.cretaeAccount(RestCreateUser.java:52)
REST 服务
浏览器服务
package com.what.now.rest;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.what.now.business.IUserBusiness;
import com.what.now.model.bean.User;
import com.what.now.model.dto.AccountRegisterDTO;
import com.what.now.tools.ConverterUserBeanDTO;
import com.what.now.tools.ValidateRestInput;
/**
* Rest Service
*
*/
@Component
@Path("/register")
public class RestCreateUser {
@Autowired
private IUserBusiness userService;
@POST
@Path("/createAccount")
@Produces({ MediaType.APPLICATION_JSON, })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XHTML_XML })
public Boolean cretaeAccount(final AccountRegisterDTO newAccount) {
Boolean result = false;
// create user
User user = ConverterUserBeanDTO.userDtoToBean(newAccount);
// add dto in bean
// save user
userService.create(user);
// result to save
if (user.getId() != 0) {
result = true;
}
return result;
}
服务
添加数据库的服务
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.what.now.business.IUserBusiness;
import com.what.now.dao.IUserDAO;
import com.what.now.model.bean.User;
@Service
public class UserBusinessImpl implements IUserBusiness {
@Autowired
IUserDAO userDAO;
public void create(User user) {
userDAO.create(user);
}
public User find(String id) {
return userDAO.find(id);
}
public void update(User user) {
userDAO.update(user);
}
public void delete(User user) {
userDAO.delete(user);
}
}
web.xml
用于 web 应用程序的配置 .. 这个配置用于加载 spring 上下文并初始化 Jersey servlet
<web-app 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"
version="3.0">
// context application
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:*/applicationContext.xml </param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>whatNow-rest-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.what.now.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>whatNow-rest-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
applicationContext.xml
这是我的应用程序配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">
<context:component-scan base-package="com.what.now.*"
annotation-config="true" />
<tx:annotation-driven/>
</beans>
pom.xml
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.what.now.project</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>whatNow-packaging</artifactId>
<packaging>war</packaging>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8</jdk.version>
<spring.version>3.2.13.RELEASE</spring.version>
<jersey.version>1.17.1</jersey.version>
<jersey.client.version>1.17.1</jersey.client.version>
<jersey.servlet.version>1.17.1</jersey.servlet.version>
<jersey.json.version>1.17.1</jersey.json.version>
<jersey.multipart>1.17.1</jersey.multipart>
<javax.mail>1.4</javax.mail>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Jersey -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>${jersey.json.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>${jersey.servlet.version}</version>
</dependency>
<!-- Spring + Jersey -->
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>${jersey.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- hibernate -->
</dependencies>
</build>
</project>
【问题讨论】:
-
您能否向我们展示您迄今为止为解决此问题所做的尝试?
-
我尝试在 RestCreateUser.java 中添加@Componont 注释。构建了 Spring servlet。但它没有工作
-
在 UserBusinessImpl 上尝试@Service("userService")?
-
我尝试@Service("userService") 不起作用:( ...
标签: spring rest maven jakarta-ee jax-rs