org.apache.axis2.AxisFault: ошибка транспорта: 401 Ошибка: неавторизовано при вызове веб-службы на Tomcat

apache.axis2.AxisFault: Ошибка транспорта: 401 Ошибка: Несанкционированное исключение при вызове веб-службы, развернутой на Tomcat 6.0.13, найдите трассировку стека, как показано ниже: log4j:WARN Не удалось найти приложения для регистратора (org.apache.axis2. описание.AxisService). log4j:WARN Пожалуйста, правильно инициализируйте систему log4j. HSYS : sysuser00 : 10.112.209.51:6500 : null : 80 : null [SO_TIMEOUT, _NTLM_DIGEST_BASIC_AUTHENTICATION_] 300000 org.apache.axis2.transport.http.HttpTransportProperties$Authenticator@fc9944 HSYS : sysuser00 org.apache Ошибка 401: неавторизовано на org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:296) на org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:190) на org.apache .axis2.transport.http.HTTPSender.send(HTTPSender.java:75) в org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371) в org.apache.axis2.transport.http.CommonsHTTPTransportSender .invoke(CommonsHTTPTransportSender.java:209) в org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435) в org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) в org. apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) на org.apa che.axis2.client.OperationClient.execute(OperationClient.java:165) в com.test.CmPersonUpServiceStub.cmPersonUp(CmPersonUpServiceStub.java:228) в com.test.CmPersonUpServiceTest.testcmPersonUp(CmPersonUpServiceTest.java:69) в com.test .CmPersonUpServiceTest.main(CmPersonUpServiceTest.java:85) ------------------------------------------------------ -------------------------------------------------- ------------------------- `пожалуйста, найдите мой тестовый класс вызова, как показано ниже:

/**
 * CmPersonUpServiceTest.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis2 version: 1.5  Built on : Apr 30, 2009 (06:07:24 EDT)
 */
    package com.test;

import java.util.ArrayList;
import java.util.List;

import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HttpTransportProperties;
import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator;

import com.oracle.cmpersonup_xsd.CmPersonUp;

    /*
     *  CmPersonUpServiceTest Junit test case
    */

    public class CmPersonUpServiceTest {


        /**
         * Auto generated test method
         */
        public  void testcmPersonUp() throws java.lang.Exception{

        com.test.CmPersonUpServiceStub stub =
                    new com.test.CmPersonUpServiceStub();//the default implementation should point to the right endpoint




        Options opt = stub._getServiceClient().getOptions();
        EndpointReference epr = new EndpointReference("http://10.112.209.51:6500/spl/XAIApp/xaiserver/CmPersonUp");
        opt.setTo(epr); 
        opt.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(300000));
        HttpTransportProperties.Authenticator authenticator = new HttpTransportProperties.Authenticator();
        List<String> auth = new ArrayList<String>();
        auth.add(Authenticator.BASIC);
        authenticator.setAuthSchemes(auth);
        authenticator.setUsername("HSYS");
        authenticator.setPassword("sysuser00");
        authenticator.setHost("10.112.209.51:6500");
        authenticator.setPort(80);
        authenticator.setPreemptiveAuthentication(true);
        opt.setProperty(HTTPConstants.AUTHENTICATE, authenticator);
        stub._getServiceClient().setOptions(opt);

        Options opt1 = stub._getServiceClient().getOptions();
        if(opt1.getProperty(HTTPConstants.AUTHENTICATE)!=null){
        Authenticator authenticator1=(Authenticator)opt1.getProperty(HTTPConstants.AUTHENTICATE);
        System.out.println(authenticator1.getUsername()+" : "+authenticator1.getPassword()+" : "+authenticator1.getHost()+" : "+authenticator1.getDomain()+" : "+authenticator1.getPort()+" : "+authenticator1.getRealm());
        }
        else System.out.println("opt1.getProperty(HTTPConstants.AUTHENTICATE); is null ");
           com.oracle.cmpersonup_xsd.CmPersonUp cmPersonUp5=
                                                        (com.oracle.cmpersonup_xsd.CmPersonUp)getTestObject(com.oracle.cmpersonup_xsd.CmPersonUp.class);
                    // TODO : Fill in the cmPersonUp5 here
           cmPersonUp5.setPersonId("0272100000");
           cmPersonUp5.setPersonEmailId("[email protected]");
            cmPersonUp5.setFaultStyle("wsdl");
           CmPersonUp response=stub.cmPersonUp(cmPersonUp5);
           System.out.println(response.getPersonEmailId()+" ------>>>>>> "+response.getPersonId()+" ------->>>>>>> "+response.getPersonBirthDay());

        }

        //Create an ADBBean and provide it as the test object
        public org.apache.axis2.databinding.ADBBean getTestObject(java.lang.Class type) throws java.lang.Exception{
           return (org.apache.axis2.databinding.ADBBean) type.newInstance();
        }

        public static void main(String[] args) {
            CmPersonUpServiceTest test = new CmPersonUpServiceTest();
            try {
                test.testcmPersonUp();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }


    }

Пожалуйста, окажите свою помощь в этом вопросе.`


person vinayak    schedule 21.10.2011    source источник


Ответы (1)


Ошибка 401 означает, что целевой URL-адрес защищен, и вам необходимо предоставить аутентификацию по имени пользователя/паролю.

вам нужно установить имя пользователя и пароль в клиенте или настроить параметры вашего сервера, чтобы служба не была защищена.

Проверьте класс TemperatureConverterStub на наличие методов, которые позволяют вам установить имя пользователя/пароль, или проверьте документацию любого инструмента, который вы используете для создания этих классов, для получения дополнительной информации об этом.

person The Alchemist    schedule 20.05.2014