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

apache.axis2.AxisFault: Ошибка транспорта: 401 Ошибка: несанкционированное исключение при вызове веб-службы, развернутой на Tomcat 6.0.13, найдите трассировку стека, как указано ниже: log4j: ПРЕДУПРЕЖДЕНИЕ. Не удалось найти никаких добавлений для средства ведения журнала (org.apache .axis2.description.AxisService). log4j: WARN Пожалуйста, правильно инициализируйте систему log4j. HSYS: sysuser00: 10.112.209.51:6500: ноль: 80: ноль [SO_TIMEOUT, _NTLM_DIGEST_BASIC_AUTHENTICATION_] 300000 org.apache.axis2.transport.http.HttpTransportProperties2.AuthenticatorYSax.SYS.SYS.SYS.SYS Ошибка 401: не авторизован в org.apache.axis2.transport.http.HTTPSender.handleResponse (HTTPSender.java:296) в org.apache.axis2.transport.http.HTTPSender.sendViaPost (HTTPSender.java:1ap) в org. Домен .invoke (CommonsHTTPTransportSender.java:209) в org.apache.axis2.engine.AxisEngine.send (AxisEngine.java:435) в org.apache.axis2.description.OutInAxisOperationClient.send (OutInAxisOperation.java: atg. 40) apache.axis2.description.OutInAxisOperationClient.executeImpl (OutInAxisOperation.java:229) в org.apa che.axis2.client. .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("vinay.bhar@hcl.com");
            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();
            }
        }


    }

Пожалуйста, предоставьте вашу помощь в этом вопросе.

1 Ответ

2 голосов
/ 20 мая 2014

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

вам необходимо установить имя пользователя и пароль в клиенте или настроить параметры сервера таким образом, чтобыСервис не защищен.

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

...