Vra

Ek gebruik Apache Axis om my Java program om 'n web bediener te verbind. Ek gebruik wsdl2java om die stompies skep vir my, maar toe ek probeer om die stompies gebruik, kry ek die volgende uitsondering:

  

org.apache.axis.ConfigurationException: Geen diens genoem <web service name> is beskikbaar

'n idee?

Was dit nuttig?

Oplossing

Net 'n raaiskoot, maar dit lyk asof die fout boodskap is berig dat jy die diens naam leeg het oorgebly. Ek dink aan die kode wat die fout boodskap genereer lyk soos volg:

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

Ander wenke

Volgens die dokumentasie gekoppel aan deur @arnonym, hierdie uitsondering is ietwat misleidend. In die eerste poging om die diens 'n ConfigurationException gegooi en gevang kry. Dit is aangemeld by DEBUG vlak deur die ConfigurationException klas. Dan nog 'n poging aangewend om 'n ander metode om die diens wat dan kan slaag vind. Die oplossing hiervoor is om net die log vlak op die ConfigurationException klas verander na INFO in jou log4j.properties:

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

Dit is wat my kode lyk. Dit lyk goed om te werk. Gebruik jy 'n diens locator of net die skep van jou diens?

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

Ek weet nie watter weergawe van Axis wat jy gebruik maar ek gebruik Axis2 vir beide bediener en die kliënt en die Java2WSDL skep 'n standaard eindpunt vir die diens op localhost. As jy die kliënt stomp met WSDL2Java skep, sal die verstek konstruktor van die stomp dan wys local host. As die diens is op ander eindpunt moet jy die konstruktor gebruik met die eindpunt as parameter ... Dalk is dit die probleem is nie dat ten alle maar as gesê ander antwoorde, sonder die WSDL wat jy gebruik as WSDL2Java insette is dit moeilik om te sê.

scroll top