Я имею Maven сборки и проект с клиентом WebService, который будет развернут на сервере wildfly. В моем клиента EJB, я следующийКак иметь конфигурируемый @WebServiceRef (wsdlLocation
@Stateless
public class MyClientEJB {
@WebServiceRef(wsdlLocation = "http://localhost:8080/HelloWorld/HelloWorldService?wsdl")
private HelloWorldService service;
Я хочу, чтобы у меня был другой URL-адрес для тестирования и производства, как я могу получить этот URL-адрес в качестве настраиваемой записи. Я пробовал создавать профили в моем файле pom.xml, но для этого требуется следующий код, и я не знаю, как его использовать в @WebServiceRef аннотация.
private void initProperties() {
InputStream is = getClass().getClassLoader().getResourceAsStream("application.properties");
if (is != null) {
try {
properties.load(is);
BASE_URL = (String)properties.getProperty("student.restws.url");
} catch (IOException e) {
logger.error("Error when reading properties: ", e);
throw new RuntimeException("Can not load application.properties file.");
}
} else {
logger.error("Error when finding application.properties.");
throw new RuntimeException("Error when finding application.properties.");
}
}
Любой пример будет оценена. Благодаря
Обновление:
Я добавил папку под WSDL Src/основной/ресурсы/META_INF и скопировать файл WSDL там. В @WebServiceRef аннотацию затем обновлен до @WebServiceRef (wsdlLocation = "META-INF/WSDL/HelloWorld.wsdl")
Но я получаю следующее сообщение об ошибке во время выполнения, когда вебсервис вызывается.
Caused by: java.io.IOException: JBAS015526: Child 'META-INF/wsdl/HelloWorld.wsdl' not found for VirtualFile: "/C:/wildfly-8.1.0.Final/bin/content/hello-world.war"
WSDL-файл имеет следующие определены:
<wsdl:service name="HelloWorldService">
<wsdl:port name="HelloWorldPort" binding="tns:HelloWorldEndpointBinding" >
<soap:address location="http://localhost:9090/HelloWorldPort"/>
</wsdl:port>
</wsdl:service>
ли вы добавить его в 'META-INF' или' META-INF/wsdl'? Имейте в виду, что файл должен быть доступен из класса. – Hannes
Попробуйте с ведущими /. Я думаю, что 'META_INF' - это просто опечатка. – Hannes