我是java restful webservice的新手,我已经在我的dao中编写了所需的方法,现在我想用webservice调用这些方法。我试过下面提到的代码
Web.xml中
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<!-- <init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.demo.service</param-value>
</init-param> -->
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.demo.service.MyApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
RestfullWebService.Java
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.test.dao.RestDao;
@Path("/endPoint/service")
public class EndPointService {
@Autowired
@Qualifier("dao")
RestDao dao;
public RestDao getDao() {
return dao;
}
public void setDao(RestDao dao) {
this.dao= dao;
}
@GET
public void name() {
System.out.println("Inside Get Method");
}
@POST
@Path("/author")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String author(String s) {
System.out.println("I am Author.. This is My Testing Purpose");
String res=s;
try{
String daoRes=dao.getempemailsearch(res); // Got Error NullPointer Exception
return daoRes;
}catch(Exception e){
e.printStackTrace();
return "Exception";
}
}
}
RestDao.Java
public interface RestDao
{
public String getempemailsearch(String name);
}
ResDaoImpl.Java
@Repository
@Singleton
public class RestDaoImpl implements RestDao
{
@Transactional(value="transactionManager")
public String getempemailsearch(String name)
{
System.out.println("Hi This is MY DAO");
}
}
RestClient.Java
package com.restfull.robert;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
public class RestClient {
private final static String URI="http://localhost:8080/resttest/rest/endPoint/service/author";
public static void main(String args[]) {
Client client=Client.create();
WebResource webresource= client.resource(URI);
/* ClientResponse clientresponse=webresource.get(ClientResponse.class);//get
*/
ClientResponse clientresponse=webresource.accept(MediaType.TEXT_PLAIN).entity("arjun").post(ClientResponse.class);
if(clientresponse.getStatus() == 200){
String op=clientresponse.getEntity(String.class);
System.out.println("Client Side OutPut "+op);
}
}
}
在这一行我得到了NULL指针异常,我需要解决这个问题。
String daoRes=dao.getempemailsearch(res); // Got Error NullPointer Exception
现在我出去了:
我是作者..这是我的测试目的 空指针异常 客户端OutPut异常
预期OutPut:
我是作者..这是我的测试目的 客户端OutPut嗨这是我的DAO