vinayak
vinayak

Reputation: 11

org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized while invoking the webservice on Tomcat

apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized exception while invoking the webservice deployed on Tomcat 6.0.13 please find the stack trace as given below: log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService). log4j:WARN Please initialize the log4j system properly. 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.axis2.AxisFault: Transport error: 401 Error: Unauthorized at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:296) at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:190) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:209) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) at com.test.CmPersonUpServiceStub.cmPersonUp(CmPersonUpServiceStub.java:228) at com.test.CmPersonUpServiceTest.testcmPersonUp(CmPersonUpServiceTest.java:69) at com.test.CmPersonUpServiceTest.main(CmPersonUpServiceTest.java:85) ------------------------------------------------------------------------------------------------------------------ `please find my test invocation class as below :

/**
 * 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();
            }
        }


    }

Please provide your assistance in this matter.`

Upvotes: 1

Views: 19039

Answers (1)

The Alchemist
The Alchemist

Reputation: 31

A 401 error means that the target URL is protected, and you need to provide username/password authentication.

you need to set the username and password in the client, or tune your server settings so that the service is not protected.

Check the TemperatureConverterStub class for methods that allow you to set username/password, or check the documentation of whichever tool you're using to create those classes for more information on this.

Upvotes: 3

Related Questions