大佬教程收集整理的这篇文章主要介绍了尝试构建Web服务时出现ContainerException,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_539_3@mapErpservice用@Path("/erp")
(或其他字符串)注释您的班级。
我收到一个错误,指示缺少root resource class
in resource
Config
。这是我的网络服务代码:
public class MapErpservice {
//first a URI for each resource,create using PUT
DBUtils db;
MapErpservice()
{
db=new DBUtils("zmaperp","root","root");
}
@PUT
@Path("/{objtypE}/{objkey}")
@Consumes(MediaType.APPLICATION_JSON)
public Response createGeometry(@PathParam("objtype") String objtype,@PathParam("objkey") String objkey,JSONObject obj)
{
//generate gisuniqkey here
JSONObject geo=(JSONObject) obj.get("geometry");
String gisuniqkey=(String) obj.get("gisuniqkey");
String wkt=db.convertToWKT(geo.toJSONString());
if(db.insertGeometryValues(gisuniqkey,objkey,objtype,wkt))
{
System.out.println("Data inserted successfully using PUT with objkey: "+objkey);
return Response.status(201).entity("Data inserted successfully using PUT with objkey: "+objkey).build();
}
else
{
System.out.println("Data could not be inserted successfully");
return Response.status(500).entity("Data inserted successfully using PUT with objkey: "+objkey).build();
}
}
@POST
@Path("/{objtypE}")
@Consumes(MediaType.APPLICATION_JSON)
public Response createGeometryUsingPost(@PathParam("objtype")String objtype,JSONObject obj)
{
//both gisuniqkey and objkey have to be generated by magic here...
JSONObject geo=(JSONObject) obj.get("geometry");
String gisuniqkey=(String) obj.get("gisuniqkey");
String objkey=(String)obj.get("objkey");
String wkt=db.convertToWKT(geo.toJSONString());
if(db.insertGeometryValues(gisuniqkey,wkt))
{
//set response code to 201(??) here
System.out.println("Data inserted successfully using PUT with objkey: "+objkey);
return Response.created(URI.create("http://localhost:8180/"+"GoogleMapsLoadingTest/"+objtype+"/"+objkey)).status(201).entity("Data inserted successfully using POST with objkey: "+objkey).build();
}
else
//set response code 404??
System.out.println("Data could not be inserted successfully");
return Response.status(201).entity("Data could not be inserted successfully").build();
}
@GET
@Path("/{objtypE}/{objkey}")
@Produces(MediaType.APPLICATION_JSON)
public JSONObject getGeometry(@PathParam("objtype")String objtype,@PathParam("objkey") String objkey)
{
ResultSet rs=db.queryValue(objkey,objtypE);
JSONObject res=null;
try {
if(rs.next())
{
String wkt=rs.getString("AsText(Geometry)");
res=db.convertToGeoJSON2(wkt);
}
} catch (SQLException E) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
@PUT
@Path("/{objtypE}/{objkey}")
@Consumes(MediaType.APPLICATION_JSON)
public Response updateGeometry(@PathParam("objkey") String objkey,@PathParam("objtype") String objtype,JSONObject obj)
{
String gisuniqkey=(String) obj.get("gisuniqkey");
JSONObject geo=(JSONObject) obj.get("geometry");
String wkt=db.convertToWKT(geo.toJSONString());
if(db.updateGeometryValue(objkey,wkt))
{
System.out.println("The update operation was successful for objkey: "+objkey);
return Response.status(200).entity("The update operation was successful for objkey: "+objkey).build();
}
else
//send 500 Server Error here
System.out.println("The update operation failed completely");
return Response.status(500).entity("The update operation failed completely").build();
}
@deletE
@Path("/{objkey}/{objtypE}")
public Response deleteGeometry(@PathParam("objkey") String objkey,@PathParam("objtype") String objtypE){
if(db.delete(objkey,objtypE)){
System.out.println("The delete operation was successful");
return Response.status(200).entity("The delete operation was successful").build();
}
else
{
System.out.println("The delete operation failed miserably");
return Response.status(500).entity("The delete operation failed miserably").build();
}
}
//how do I do multiple...a basic attempt using the POST method
@POST
@Path("/{objtypE}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject getMultiGeometry(@PathParam("objtype") String objtype,JSONObject body){
JSONObject res=null;
JSONArray itab= (JSONArray) body.get("itab");
ArrayList<String> keys=new ArrayList<String>();
for(int i=0;i<itab.size();i++)
{
JSONObject keyObj=(JSONObject) itab.get(i);
String objkey=(String) keyObj.get("objkey");
keys.add(objkey);
System.out.println("\nobjkey: "+objkey);
}
ResultSet rs=db.queryValues(keys);
try {
ArrayList<String> wktList=new ArrayList<String>();
while(rs.next())
{
String wkt=rs.getString("AsText(GEOMETRY)");
//String geo=db.convertToGeoJSON(wkt).toJSONString();
//System.out.println("\nwkt: "+wkt+"\tgeoJSON: "+geo);
wktList.add(wkt);
}
res=db.createGeometryCollection(wktList);
}
catch (SQLException E) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
}
这是我的web.xml
:
<display-name>GoogleMapLoadingTest</display-name>
<servlet>
<servlet-name>jersey REST services</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.hastha.maperp.webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey REST services</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
添加应用程序类无效:
public class MapErpApplication extends Application {
public Set<Class<?>> getClasses()
{
Set<Class<?>> res=new HashSet<Class<?>>();
res.add(MapErpservice.class);
res.add(MapErpGetservice.class);
return res;
}
}
我仍然收到此错误:
com.sun.jersey.api.container.ContainerException: The resourceConfig instance does not contain any root resource classes.
com.sun.jersey.server.impl.application.RootresourceUriRules.<init>(RootresourceUriRules.java:99)
com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359)
com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:491)
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:321)
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:376)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:559)
javax.servlet.GenericServlet.init(GenericServlet.java:160)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.Abstracthttp11Processor.process(Abstracthttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)
现在我从浏览器执行GET请求时收到此错误
以上是大佬教程为你收集整理的尝试构建Web服务时出现ContainerException全部内容,希望文章能够帮你解决尝试构建Web服务时出现ContainerException所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。