【发布时间】:2015-07-03 12:28:45
【问题描述】:
我正在使用 Jersey 将 Restful Web 服务作为独立应用程序运行。
以下是我服务于请求的服务类。
LoginServiceImpl.java
@Component
public class LoginServiceImpl implements LoginService {
@Value("${login.service.defaultmessage}")
private String defaultMessage;
@Autowired
private EmLoginDAO emLoginDAO;
@Override
public String defaultCall() {
return defaultMessage;
}
@Override
public String updatePassword(List<Login> userList) {
System.out.println(emLoginDAO + "\n" + userList);
emLoginDAO.save(userList);
return "Passwords Updated...";
}
@Override
public List<Login> getPasswords() {
System.out.println("OBJECT: " + emLoginDAO);
List<Login> userList = null;
userList = emLoginDAO.findAll();
return userList;
}
}
LoginService.java
@Component
@Path("/user")
public interface LoginService {
@GET
public String defaultCall();
@POST
@Path(value = "/print")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
public String updatePassword(List<Login> userList);
@GET
@Path(value = "/getpassword")
@Produces(MediaType.APPLICATION_XML)
public List<Login> getPasswords();
}
下面是我的spring配置文件。
<context:component-scan base-package="com.em.login" />
<context:annotation-config />
启动服务后,当我调用相应的方法时会被调用。
但我的 defaultMessage 和 emLoginDAO 对象为空。所以不是指属性和spring配置文件。
所以任何人都可以帮助我纠正这个问题。或者想办法将属性和 spring 配置文件路径设置为 Jersey。
更新
Closeable server = null;
try {
DefaultResourceConfig resourceConfig = new DefaultResourceConfig(
LoginServiceImpl.class);
resourceConfig.getContainerResponseFilters().add(
new GZIPContentEncodingFilter());
server = SimpleServerFactory.create(serviceurl,
resourceConfig);
System.in.read();
} catch (IOException e) {
} finally {
if (server != null) {
try {
server.close();
} catch (IOException ex) {
}
}
}
【问题讨论】:
-
你如何发布你的服务?
-
我已经用代码更新了任务。请检查。
标签: java spring jersey spring-boot