首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Spring的Axis2客户端

基于Spring的Axis2客户端
EN

Stack Overflow用户
提问于 2012-11-17 20:37:16
回答 1查看 2.2K关注 0票数 1

我有一个简单的Axis2客户端。我使用Spring作为轻量容器。我的问题是:axis2 client和spring之间有集成吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-24 13:14:03

这个link可以让你大致了解你需要做什么

首先,您需要从axis2端点生成存根代码。使用maven和axis2 maven插件如下所示:

代码语言:javascript
复制
<plugin>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>

                <version>${axis.version}</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>wsdl2code</goal>
                        </goals>
                        <configuration>
                            <wsdlFile>{axis2wsdl-url} or src/main/resources/wsdl/{downloaded wsdl file}</wsdlFile>
                            <packageName>com.cybersource.stub</packageName>
                            <databindingName>xmlbeans</databindingName>

                        </configuration>
                    </execution>
                </executions>               
            </plugin>

接下来,您需要将生成的jar文件安装到maven存储库中。在执行任何操作之前,您需要转到生成存根代码的位置并运行"ant“,它将生成所需的jar文件,您需要将它们安装到您的存储库中。

如果您使用的是Spring Boot,请添加以下两个bean:

代码语言:javascript
复制
@Bean
    public ConfigurationContext getConfigurationContext() throws AxisFault {
        ConfigurationContext ctx = ConfigurationContextFactory
                .createConfigurationContextFromFileSystem(config.getAxisConfigLocation(), null);
        return ctx;
    }

    @Bean
    public Policy getOMElement() throws FileNotFoundException {
        String policyLocation = config.getAxisConfigLocation() + "/conf/policy.xml";
        InputStream in = new FileInputStream(policyLocation);
        OMXMLParserWrapper omxmlParserWrapper = OMXMLBuilderFactory.createOMBuilder(in);
        Policy policy = PolicyEngine.getPolicy(omxmlParserWrapper.getDocumentElement());
        return policy;
    }

应将config.getAxisConfigLocation()设置为复制Axis配置文件的位置,如下所示:

在上面的模式中,axis2.xml对于生成axis2上下文很重要。policy.xml和rampart-xxx.mar文件用于身份验证,您需要知道服务器如何处理它。

在连接器部分,您需要注入ctx和/或策略bean并生成存根,如下所示:

代码语言:javascript
复制
@Autowired
    ConfigurationContext ctx;

    @Autowired
    Policy policy;

private TransactionProcessorStub generateStub() throws AxisFault {
        TransactionProcessorStub stub = new TransactionProcessorStub(ctx, config.getServerurl());
        ServiceClient client = stub._getServiceClient();
        Options clientOptions = client.getOptions();
        clientOptions.setProperty(WSHandlerConstants.USER, config.getMerchantid());

        clientOptions.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
        client.setOptions(clientOptions);
        client.engageModule("rampart");

        return stub;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13430626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档