Подскажите по custom API
Есть сервис
Код:
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
import javax.jws.WebService;
@WebService(name = "TestServiceImpl", targetNamespace = "http://test.billing.ru/")
public class TestServiceImpl extends AbstractService {
public String getTestObject(String a){
return a;
}
}
Импортирую его в сторонний проект
Код:
wsimport.exe -Xnocompile -p ru.api.testservice -d ..TestProject\src\ http://127.0.0.1/bgbilling/api/ru.bgbilling.test/TestService?wsdl
В стороннем проекте вызываю так
Код:
import ru.api.testservice.TestServiceImpl;
import ru.api.testservice.TestServiceImplService;
public class Test {
public static void main(String[] args) {
TestServiceImplService testServiceImplService = new TestServiceImplService();
TestServiceImpl testService = testServiceImplService.getTestServiceImplPort();
String result = testService.getTestObject("Test string");
System.out.print(result);
}
}
Переписываю сервис в
Код:
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
import javax.jws.WebService;
@WebService(name = "TestServiceImpl", targetNamespace = "http://test.billing.ru/")
public class TestServiceImpl extends AbstractService {
public TestObject getTestObject(String a, String b) {
TestObject testObject = new TestObject();
testObject.setTitle(a);
testObject.setComment(b);
return testObject;
}
}
Добавляю класс TestObject
Код:
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"title", "comment"}, namespace = "http://test.billing.ru/")
@XmlRootElement(name = "TestObject", namespace = "http://test.billing.ru/")
public class TestObject {
@XmlElement(name = "title")
protected String title;
@XmlElement(name = "comment")
protected String comment;
public String getTitle() {
return this.title;
}
public void setTitle(String value) {
this.title = value;
}
public String getComment() {
return this.comment;
}
public void setComment(String value) {
this.comment = value;
}
}
Делаю wsimport и пишу в стороннем проекте
Код:
import ru.ellcom.api.testservice.GetTestObjectResponse;
import ru.ellcom.api.testservice.TestServiceImpl;
import ru.ellcom.api.testservice.TestServiceImplService;
public class Test {
public static void main(String[] args) {
TestServiceImplService testServiceImplService = new TestServiceImplService();
TestServiceImpl testService = testServiceImplService.getTestServiceImplPort();
GetTestObjectResponse.Return result = testService.getTestObject("title", "comment");
System.out.print(result);
}
}
Собственно вопрос в чемКак во втором случае сделать так, чтобы тип result был TestObject, а не GetTestObjectResponse.Return?Можно поменять в импортированном TestServiceImpl
Код:
public ru.api.testservice.GetTestObjectResponse.Return getTestObject(
чтобы оно возвращало TestObject, но интересует можно ли сделать это автоматически?
Тот же ContractService при wsimport и вызове contractGet(int contractId), возвращает корректный Contract, а не GetContractResponse.Return