Я хочу создать почтовый сервис двумя способами. Имена методов будут другими. Эти два метода будут принимать разные объекты для вызовов. Но типы носителей Path и Production / потребление должны быть одинаковыми. Как это сделать? Пожалуйста, найдите этот код ниже. Это дает исключение типа «Модель ресурсов имеет неоднозначный (под) метод ресурсов для HTTP-метода POST и входных типов mime, как определено аннотациями« @Consumes »и« @Produces »в методах Java», при развертывании в weblogi. c.
package com.adac.rest.service;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import com.adac.rest.model.Response;
import com.adac.rest.model.SalesData;
import com.adac.rest.model.Tax;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@Path("/rest")
public class StageDataLoadingService {
@POST
@Path("/dataloading")
@Consumes("application/json")
@Produces("application/json")
public String resourceMethodPUTSalesData(SalesData sd) throws Exception {
System.out.println("This method called with Sales Data");
Response resp = new Response();
resp.setStatuscode("0");
resp.setStatusmessage("Success");
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String json_resp = mapper.writeValueAsString(resp);
String str1 = mapper.writeValueAsString(sd);
System.out.println(str1);
//String sd1 = mapper.writeValueAsString(sd);
//System.out.println(sd1);
// JsonNode jsonNodeRoot = mapper.readTree(json_resp);
return json_resp;
}
@POST
@Path("/dataloading")
@Consumes("application/json")
@Produces("application/json") public String resourceMethodPUTTax(Tax tax)
throws Exception {
System.out.println("This method called with Tax");
Response resp = new Response(); resp.setStatuscode("0");
resp.setStatusmessage("Success");
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT); String json_resp =
mapper.writeValueAsString(resp);
String str1 = mapper.writeValueAsString(tax);
System.out.println(str1);
return json_resp;
}
}
Также предложите конфигурации web. xml и weblogi c. xml для предлагаемого вами дизайна.
В настоящее время web. xml is :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>ADACStageDataLoadingService</display-name>
<servlet>
<servlet-name>rest.application.config.ApplicationConfig</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>rest.application.config.ApplicationConfig</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
и weblogi c. xml:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1.3</wls:weblogic-version>
<wls:context-root>ADACStageDataLoadingService</wls:context-root>
<wls:library-ref>
<wls:library-name>jax-rs</wls:library-name>
<wls:specification-version>2.0</wls:specification-version>
<wls:exact-match>false</wls:exact-match>
</wls:library-ref>
</wls:weblogic-web-app>