Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何mime url的类型_Java_Cxf - Fatal编程技术网

Java 如何mime url的类型

Java 如何mime url的类型,java,cxf,Java,Cxf,我使用cxf作为Web服务。它支持请求数据的xml和json格式输出。我想知道,如果我的代码中发生了异常,那么我想以xml或json格式将错误代码返回给他。但我不知道何时提供json和xml,这取决于用户请求的url 范例 @路径(“/reports/ad view/loginId/{loginId}/publisher/”) 如果您的意思是要检测用于发出请求的mime类型,那么可以使用@Consumes注释指定哪个方法处理哪种类型的请求。所以你可以写: // Called when an XM

我使用cxf作为Web服务。它支持请求数据的xml和json格式输出。我想知道,如果我的代码中发生了异常,那么我想以xml或json格式将错误代码返回给他。但我不知道何时提供json和xml,这取决于用户请求的url

范例

@路径(“/reports/ad view/loginId/{loginId}/publisher/”)


如果您的意思是要检测用于发出请求的mime类型,那么可以使用@Consumes注释指定哪个方法处理哪种类型的请求。所以你可以写:

// Called when an XML request is made
@Path("/reports/ad-view/loginId/{loginId}/publisher/")
@Consumes("application/xml")
PublisherReports getPublisherReportsAdViewXml(...
以及:


然后,让getPublisherReportsAdView()方法的每个变体调用一个公共方法来执行实际的处理逻辑,但仍然根据调用的方法不同处理异常

另一种不需要额外方法的方法是添加一个用@HeaderParam注释的参数,并使用该参数保存“Content Type”请求头的值

e、 g:


contentType的值可能还包括字符集信息,例如:application/jsoncharset=UTF-8因此,在计算请求是否包含JSON或XML时,需要忽略这一点

在本例中,我创建了一个额外的函数,它将增加我的代码大小。相反,我可以传递查询参数,它将告诉我mimetype是xml还是json。如果我的代码中没有异常,我不需要知道mimeType。如果一切正常,那么cxf将自动返回请求的格式如何在url中定义headerparam你能再解释一下吗?如果我打印内容类型,它将给出值“null”@headerparam不从url中注入值,它从HTTP头中获取值,在请求中使用给定的名称。这是它的文档:你是说你不明白,还是说你在使用@HeaderParam时没有看到注入的值?Perhpas检查正在发出的HTTP请求以确保标头存在?明白了。但我没有设置标头。有两个aap一个aap将调用另一个。我认为在这种情况下@consumes会更好
// Called when an XML request is made
@Path("/reports/ad-view/loginId/{loginId}/publisher/")
@Consumes("application/xml")
PublisherReports getPublisherReportsAdViewXml(...
// Called when a JSON request is made
@Path("/reports/ad-view/loginId/{loginId}/publisher/")
@Consumes("application/json")
PublisherReports getPublisherReportsAdViewJson(...
PublisherReports getPublisherReportsAdView(
                @PathParam("loginId") String loginId,
                @QueryParam("fromDate") String fromDate,
                @QueryParam("toDate") String toDate,
                @QueryParam("filterValue") String filterValue,
                @HeaderParam("Content-Type") String contentType)
{
  ...