gpt4 book ai didi

java - 如何指定 Jersey 中属性文件的路径值?

转载 作者:行者123 更新时间:2023-12-01 12:16:08 25 4
gpt4 key购买 nike

我希望路径不应该被硬编码,而是从属性中获取,以便我们可以根据需要更改它。

下面的代码有效:---

@Path("ws/{version}")
public class DesignationResource {

@PathParam("version") String version =
Constants.API_VERSION; //(read from property file in class Constants)
@PathParam("servicename_designationList") String servicename_designationList=
Constants.API_POST_CITYLIST_NAME ; //(read from property file in class Constants)



@Path("{servicename_designationList}")
@Produces(MediaType.APPLICATION_JSON)
public Response getDesignations()
{
/**
...CODES...
*/
}
}

但是如果该类有两个方法,那么它不起作用并抛出异常

代码:---

@Path("ws/{version}")
public class DesignationResource {

@PathParam("version") String version =
Constants.API_VERSION; //(read from property file in class Constants)
@PathParam("servicename_designationList") String servicename_designationList=
Constants.API_POST_CITYLIST_NAME ; //(read from property file in class Constants)
@PathParam("servicename_designationListId") String servicename_designationListId=
Constants.API_POST_CITYLISTID_NAME ; //(read from property file in class Constants)



@Path("{servicename_designationList}")
@Produces(MediaType.APPLICATION_JSON)
public Response getDesignations()
{
/**
...CODES...
*/
}

@Path("{servicename_designationListId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getDesignationsId()
{
/**
...CODES...
*/
}
}

异常记录为:-----

org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.  [[FATAL] A resource model has ambiguous (sub-)resource method for HTTP method GET and input mime-types as defined by @Consumes and @Produces annotations at Java methods public javax.ws.rs.core.Response DesignationResource.getDesignations() and public javax.ws.rs.core.Response DesignationResource.getDesignationsId() at matching regular expression /([^/]+?). These two methods produces and consumes exactly the same mime-types and therefore their invocation as a resource methods will always fail.; source='org.glassfish.jersey.server.model.RuntimeResource@7e5ba613', [FATAL] A resource model has ambiguous (sub-)resource method for HTTP method GET and input mime-types as defined by @Consumes and @Produces annotations at Java methods public javax.ws.rs.core.Response source='org.glassfish.jersey.server.model.RuntimeResource@7e5ba613']    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:465)    ...

最佳答案

您在方法中使用相同的路径 url (servicename_designationListId)。为您的方法提供不同的路径,如下所示。

@Path("{servicename_designations}")
@Produces(MediaType.APPLICATION_JSON)
public Response getDesignations()
{
/**
...CODES...
*/
}

@Path("{servicename_designationListId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getDesignationsId()
{
/**
...CODES...
*/
}

关于java - 如何指定 Jersey 中属性文件的路径值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com