【问题标题】:org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized while invoking the webservice on Tomcatorg.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized while invoking the webservice on Tomcat
【发布时间】:2011-10-21 12:07:51
【问题描述】:

apache.axis2.AxisFault:传输错误:401 错误:调用部署在 Tomcat 6.0.13 上的 web 服务时出现未经授权的异常,请查找堆栈跟踪,如下所示:log4j:WARN No appenders could be found for logger (org.apache .axis2.description.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.axis2.AxisFault:传输错误: 401 错误:在 org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:190) 在 org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:190) 在 org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:296) 未经授权.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. org.apa 的 apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 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("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();
            }
        }


    }

请在这件事上提供您的帮助。`

【问题讨论】:

    标签: web-services webservice-client wsdl2java


    【解决方案1】:

    401错误表示目标网址受到保护,需要提供用户名/密码认证。

    您需要在客户端设置用户名和密码,或者调整您的服务器设置以使服务不受保护。

    查看 TemperatureConverterStub 类以获取允许您设置用户名/密码的方法,或查看用于创建这些类的任何工具的文档以获取更多信息。

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 2022-10-18
      • 2022-09-24
      • 1970-01-01
      相关资源
      最近更新 更多