【发布时间】:2020-04-24 12:08:25
【问题描述】:
我正在为我的端点编写一个测试客户端,但它无法执行提供的连接
EXCEPTION : could not find writer for content-type application/xml type: com.gepower.gees.ifs.goet.porequest.model.CreatePOReq
在行中
ClientResponse<CreatePOResp> clientResponse = client.post(CreatePOResp.class);
从 Postman,端点返回结果很好。 我试图在我的项目中添加所有 RestEasy jar,但它仍然给出同样的错误,而
public static CreatePOResp createUpdateALFPO(CreatePOReq req) {
CreatePOResp response = new CreatePOResp();
String operation = "createUpdatePO";
try {
String xmlReq = "";
try {
xmlReq = XmlUtils.marshalXmlToString(req);
System.out.println(operation + " - XML SOAP REQUEST: " + xmlReq);
} catch (Exception xmlex) {
System.out.println(xmlex.getMessage());
}
ClientRequest client = new ClientRequest("http://localhost/ofsrestws/fs/porequest/addpo");
client.body(MediaType.APPLICATION_XML, req);
System.out.println("URI ====" + client.getUri());
ClientResponse<CreatePOResp> clientResponse = client.post(CreatePOResp.class);
ResteasyProviderFactory.getInstance().addBuiltInMessageBodyReader(new JAXBXmlTypeProvider());
if (clientResponse.getStatus() == 200) {
response = clientResponse.getEntity();
System.out.println("web service is OK");
return response;
} else {
System.out.println("an issue has occure during the call of the web service: "
+ clientResponse.getResponseStatus());
// Object resp = clientResponse.getResponseStatus();
return null;
}
} catch (NullPointerException e) {
System.out.println("EXCEPTION : " + e.getMessage());
return null;
} catch (Exception e) {
System.out.println("EXCEPTION : " + e.getMessage());
return null;
} finally {}
}
堆栈跟踪:
java.lang.RuntimeException: could not find writer for content-type application/xml type: com.gepower.gees.ifs.goet.porequest.model.CreatePOReq
at org.jboss.resteasy.client.ClientRequest.writeRequestBody(ClientRequest.java:409)
at org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor$ClientRequestEntity.<init>(ApacheHttpClientExecutor.java:117)
at org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor.loadHttpMethod(ApacheHttpClientExecutor.java:188)
at org.jboss.resteasy.client.core.executors.ApacheHttpClientExecutor.execute(ApacheHttpClientExecutor.java:56)
at org.jboss.resteasy.client.ClientRequest.execute(ClientRequest.java:378)
at org.jboss.resteasy.client.ClientRequest.httpMethod(ClientRequest.java:590)
at org.jboss.resteasy.client.ClientRequest.post(ClientRequest.java:496)
at org.jboss.resteasy.client.ClientRequest.post(ClientRequest.java:501)
at org.tcs.TestJava.createUpdateALFPO(TestJava.java:52)
at org.tcs.TestJava.main(TestJava.java:31)
请找到依赖列表
【问题讨论】:
-
这通常是依赖问题。你确定你的类路径中有 resteasy-jaxb-provider 吗?
-
看看这里:stackoverflow.com/questions/40111268/… 如果这不能解决问题,请告诉我们您使用的依赖项。
-
正如您在屏幕截图中看到的 -resteasy-jaxb-provider-3.0.9.Final.jar 在那里
-
添加依赖列表
标签: java xml jboss jaxb resteasy