Cannot find query for url Observer

I am working with a sample REST service with Apache CXF, but for some reason I cannot call the service. My implementation class is

package com.ananth.lab.cfxrest.service; import com.ananth.lab.cfxrest.vo.Address; import com.ananth.lab.cfxrest.vo.Employee; import org.springframework.stereotype.Service; import javax.jws.WebService; import javax.ws.rs.*; import java.util.ArrayList; import java.util.Collection; import java.util.List; @Path("/cservice") @Produces("application/xml") public class EmployeeService { @GET @Path("/emp") public Employee getEmployee() { Address address1 = new Address(); address1.setCity("Chennai"); address1.setZip(63); List<Address> list = new ArrayList<Address>(); Address address2 = new Address(); address2.setCity("Bangalore"); address2.setZip(49); list.add(address1); list.add(address2); Employee emp = new Employee(); emp.setAddress(list); emp.setEmployeeId("001"); emp.setEmployeeName("Ananth"); return emp; } } 

My web.xml file,

 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Hello world REST service with apache cxf</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/beans.xml,WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <display-name>CXF Servlet</display-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> 

I deployed to Tomcat, and the context path was Lab. Therefore, I am trying to access a service, for example

 http://localhost:8080/Lab/cservice/emp 

I get

 No service was found. 
+4
source share
2 answers

I think you should make sure your Employee class has the correct "@" note. as below:

 @XmlRootElement(name="cservice") public class Employee (){ private String employeeId; private String employeeName; ... @XmlElement(name="employeeId") public void setEmployeeId(String employeeId){ ... } public String getEmployeeId(){ return this.employeeId; } @XmlElement(name="employeeName") public void setEmployeeName(String employeeId){ ... } public String getEmployeeName(){ return this.employeeName } ... ... } 

and I suggest you check WEB-INF / beans.xml and WEB-INF / applicationContext.xml.

+1
source

Make sure the endpoint of your request matches the endpoint of your server.

combine url in web.xml and beans.xml lead to endpoint

-1
source

Source: https://habr.com/ru/post/1386671/


All Articles