我如何使用webservice调用DAO方法

时间:2016-07-14 07:13:25

标签: java spring web-services rest

我是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

0 个答案:

没有答案