Как разместить конечную точку SOAP или веб-службы, используя wsdl с локальным путем без суффикса запроса или ответаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как разместить конечную точку SOAP или веб-службы, используя wsdl с локальным путем без суффикса запроса или ответа

Сообщение Anonymous »

Я новичок в создании веб-сервиса с использованием Spring boot. Я пытаюсь разместить службу SOAP с помощью WSDl. Я сгенерировал классы из WSDL, у которых нет суффикса «Запрос» или «Ответ».
Созданный класс выглядит следующим образом:

Код: Выделить всё

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"uniqueid"
})
@XmlRootElement(name = "EMPLOYEE_DETAILS")
public class EMPLOYEEDETAILS{

@XmlElement(name = "UNIQUE_ID")
protected String uniqueid;

public String getUNIQUEID() {
return uniqueid;
}

public void setUNIQUEID(String value) {
this.uniqueid = value;
}

}
Я расширил WsConfigurerAdapter, как показано ниже:
@EnableWs
@Configuration
публичный класс WebServiceConfig расширяет WsConfigurerAdapter {

Код: Выделить всё

@Value("${application.emp-details-wsdl-server.registration.location}")
private String wsdlLocation;

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean(servlet, wsdlLocation+"/*");
}

@Bean(name = "employeeDetailsWS")
public DefaultWsdl11Definition employeeDetailsWsdl11Definition(@Qualifier("employeeDetailsSchema") XsdSchema employeeDetailsSchema) {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("employeeDetailsPort");
wsdl11Definition.setLocationUri(wsdlLocation+"/fetchemployeeRoles");
wsdl11Definition.setTargetNamespace("http://xmlns.myservice.com/schema");
wsdl11Definition.setSchema(employeeDetailsSchema);
//wsdl11Definition.setRequestSuffix("Request");
//wsdl11Definition.setResponseSuffix("Response");
return wsdl11Definition;
}

@Bean(name="employeeDetailsSchema")
public XsdSchema employeeDetailsSchema() {
return new SimpleXsdSchema(new ClassPathResource("xsd/Employee.xsd"));
}
Создан класс конечной точки, как показано ниже:

Код: Выделить всё

@Endpoint
@Component
public class EmployeeWebService {

private static final String NAMESPACE_URI = "http://xmlns.myservice.com/schema";

@WebMethod
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "EMPLOYEE_DETAILS")
@ResponsePayload
public EmployeeRoles getEmployeeRoles(@RequestPayload EMPLOYEEDETAILS){
EmployeeRoles employeeRoles= new EmployeeRoles ();
employeeRoles.setMESSAGE("Admin");
employeeRoles.setSTATUSCODE("200");
return employeeRoles;
}
}
Приведенный выше код работает нормально, если я вручную меняю имя класса на EMPLOYEEDETAILSRequest и EmployeeRolesResponse, но он не работает, если к имени класса не добавлен суффикс Request или Response. Может ли кто-нибудь помочь мне, где я ошибаюсь, поскольку мне нужно разместить службу SOAP, имеющую структуру без этого суффикса.

Подробнее здесь: https://stackoverflow.com/questions/790 ... without-re
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»