xmlrpc帮助java实现反向代理服务器

时间:2015-06-08 09:56:10

标签: java apache xml-rpc

我有以下代码用于从java代码调用xmlrpc:

        public static String Create(String APIKey, String username,
        String Password, String Url, String Email, String Enablestatus,
        String login, String Name, String FirstName, String language,
        String managerGuid, String[] orgunit, String[] ExternalorgunitID,
        String[] Competency, String[] Positionexemple,
        String[] ExternaluserID, String[] Costcenter) {
    try {
        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
        config.setServerURL(new URL(Url));
        XmlRpcClient client = new XmlRpcClient();
        config.setBasicUserName(username);
        config.setBasicPassword(Password);

        client.setConfig(config);

        client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));
        Map namevalue = new HashMap();

        namevalue.put("email", Email);
        namevalue.put("enableStatus", Enablestatus);

        namevalue.put("login", login);

        namevalue.put("name", Name);
        namevalue.put("firstName", FirstName);

        namevalue.put("languages", language);
        namevalue.put("managerGUID", managerGuid);

        Map custvalue = new HashMap();
        custvalue.put(orgunit[0], orgunit[1]); // Org unit
        custvalue.put(Competency[0], Competency[1]);
        custvalue.put(Positionexemple[0], Positionexemple[1]);
        custvalue.put(ExternalorgunitID[0], ExternalorgunitID[1]);
        custvalue.put(ExternaluserID[0], ExternaluserID[1]);
        custvalue.put(Costcenter[0], Costcenter[1]);
        namevalue.put("customFields", custvalue);

        namevalue.put("onDuplicateLogin", "Update");

        Object[] params = new Object[] { APIKey, "", namevalue };
        return client.execute("Create.User", params).toString();

    } catch (Exception e) {
        return "Error: " + e.toString();
    }

}

当我直接点击服务器URL时,它在本地计算机上正常工作。 但是当我放在反向代理服务器后面(即此代码将调用反向代理并且反向代理将调用目标服务器URL。)然后目标服务器不接受我的请求。 原因:标头值与目标URL不匹配,即标头包含反向代理服务器URL而不是目标URL。

现在我的理解,我必须将标题中的主机名更改为原始目标网址。但我在互联网上搜索了很多但都失败了。

我认为我的问题非常明确:)

0 个答案:

没有答案