문제

Apache Axis를 사용하여 Java 앱을 웹 서버에 연결하고 있습니다.wsdl2java를 사용하여 스텁을 생성했지만 스텁을 사용하려고 하면 다음 예외가 발생합니다.

org.apache.axis.ConfigurationException:이름이 지정된 서비스가 없습니다. <web service name> 사용할 수 있습니다

어떤 생각?

도움이 되었습니까?

해결책

추측일 뿐이지만 서비스 이름을 비워 두었다는 오류 메시지가 표시되는 것 같습니다.해당 오류 메시지를 생성하는 코드는 다음과 같습니다.

throw new ConfigurationException("No service named" + serviceName + " is available");

다른 팁

에 따르면 선적 서류 비치 @arnonym에 의해 링크된 이 예외는 다소 오해의 소지가 있습니다.서비스를 찾으려는 첫 번째 시도에서 ConfigurationException이 발생하고 포착됩니다.이는 ConfigurationException 클래스에 의해 DEBUG 수준에서 기록됩니다.그런 다음 성공할 수 있는 서비스를 찾기 위해 다른 방법을 사용하여 또 다른 시도가 이루어집니다.이에 대한 해결 방법은 log4j.properties에서 ConfigurationException 클래스의 로그 수준을 INFO로 변경하는 것입니다.

log4j.logger.org.apache.axis.ConfigurationException = INFO

Axis의 제어 흐름에서 사용되는 예외입니다.

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions--> org.apache.axis.ConfigurationException:XXX라는 서비스를 사용할 수 없습니다.

이것이 내 코드의 모습입니다.잘 작동하는 것 같습니다.서비스 로케이터를 사용하고 있습니까, 아니면 단지 서비스를 만들고 있습니까?

SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
    service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
    e.printStackTrace();
}

사용 중인 Axis 버전이 무엇인지는 모르지만 서버와 클라이언트 모두에 Axis2를 사용하고 있으며 Java2WSDL은 localhost에서 서비스에 대한 기본 끝점을 만듭니다.WSDL2Java를 사용하여 클라이언트 스텁을 생성하는 경우 스텁의 기본 생성자는 localhost를 가리킵니다.서비스가 다른 엔드포인트에 있는 경우 엔드포인트를 매개변수로 사용하여 생성자를 사용해야 합니다.어쩌면 문제는 전혀 그렇지 않지만 다른 답변에서 말했듯이 WSDL2Java 입력으로 사용하는 WSDL이 없으면 말하기가 어렵습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top