Apache camel 如何在OSGi容器内的驼峰路由中使用Apache httpclient win?

Apache camel 如何在OSGi容器内的驼峰路由中使用Apache httpclient win?,apache-camel,osgi,apache-httpclient-4.x,apache-servicemix,Apache Camel,Osgi,Apache Httpclient 4.x,Apache Servicemix,我正在尝试使用ApacheHttpClient win获取由Windows身份验证保护的IIS托管的Web资源。我成功地在没有身份验证的情况下使用了Camel HTTP4组件。我还成功地从纯Java代码中使用了httpclient win和身份验证。但是现在,我很难弄清楚如何在OSGi容器ServiceMix中托管的驼峰路由中使用httpclient win。我没有完成安全部分,而是将http、netty4和restlet部署到了一个OSGi容器Apache Karaf中 您到底有什么问题?通过

我正在尝试使用ApacheHttpClient win获取由Windows身份验证保护的IIS托管的Web资源。我成功地在没有身份验证的情况下使用了Camel HTTP4组件。我还成功地从纯Java代码中使用了httpclient win和身份验证。但是现在,我很难弄清楚如何在OSGi容器ServiceMix中托管的驼峰路由中使用httpclient win。

我没有完成安全部分,而是将http、netty4和restlet部署到了一个OSGi容器Apache Karaf中


您到底有什么问题?

通过将此部分添加到我的POM文件中,我成功创建了一个OSGi捆绑包,该捆绑包嵌入了httpclient win所需的依赖项:

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.7</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>BundleName</Bundle-SymbolicName>
                    <Embed-Dependency>httpclient|httpcore|httpclient-win|jna|jna-platform;scope=compile|runtime|provided</Embed-Dependency>
                    <Embed-Transitive>true</Embed-Transitive>
                </instructions>
            </configuration>
        </plugin>

请参阅ApacheCamel附带的一些osgi/blueprint示例。是的,OSGi很难入门。我已经看过了示例,但还没有看到使用Windows身份验证的示例。Windows身份验证,你是指NTML,还是只是简单的身份验证或摘要?对于NTML,没有那么多http库支持itI,这意味着Windows单点登录SSO机制:集成Windows身份验证IWA,又称协商,自Windows 2000以来,它默认为Kerberos,而不是NTLM。我也有,但安全部分给我带来了问题!我特别想在OSGi容器中的Camel蓝图中使用httpclient win,但它不是作为OSGi捆绑包提供的,我很难用这个组件创建捆绑包。我曾尝试将其单独捆绑或将其及其依赖项集成到我自己的捆绑中,但ServiceMix Karaf总是抱怨缺少依赖项。当我这么做的时候,我想知道我是否遗漏了一些东西,比如已经集成了httpclient-win的Camel组件或OSGi包。如何将httpclient-win部署到Karaf?如果它没有绑定的jar,则需要使用thwrap命令对其进行包装。请看这里:root@karaf>bundles:install'wrap:mvn:commons-lang/commons-lang/2.4$Bundle-SymbolicName=commons-lang&Bundle-Version=2.4',我已经在Karaf部署了非osgi JAR,它可以正常工作。