3

我们有一个Maven 集成测试,它使用带有armart的axis2 客户端rampart.mar在 pom 中被指定为依赖项,但是 maven 并未将其包含在类路径中。轴需要 mar 才能加载壁垒模块。

有没有人有办法解决吗?

pom.xml 片段:

<dependency>
            <groupId>org.apache.rampart</groupId>
            <artifactId>rampart</artifactId>
            <version>1.4</version>
            <type>mar</type>
</dependency>
4

2 回答 2

1

我已将axis2-1.6.0与rampart-1.6.0一起使用,并带有以下pom提取物:

<!-- axis2/axiom: dependencies -->
<dependency>
      <groupId>org.apache.axis2</groupId>
      <artifactId>axis2</artifactId>
      <version>${axis2.version}</version>
</dependency>
<dependency>  
   <groupId>org.apache.axis2</groupId>  
   <artifactId>axis2-transport-local</artifactId>  
   <version>${axis2.version}</version>  
</dependency>
<dependency>  
   <groupId>org.apache.axis2</groupId>  
   <artifactId>axis2-transport-http</artifactId>  
   <version>${axis2.version}</version>  
</dependency>         
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-codegen</artifactId>
    <version>${axis2.version}</version>
    <scope>provided</scope>
</dependency>   

<!-- axis2-rampart: dependencies -->
<dependency>
    <groupId>org.apache.rampart</groupId>
    <artifactId>rampart-core</artifactId>
    <version>${axis2.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
        </exclusion>
        <exclusion>
            <artifactId>log4j-over-slf4j</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- slf4j: dependencies -->
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${slf4j.version}</version>
  <!-- 
  <scope>runtime</scope>
  -->
</dependency> 
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${slf4j.version}</version>
</dependency>
<!-- log4j: dependencies -->
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>${log4j.version}</version>
  <exclusions>
    <exclusion>
        <artifactId>jmxtools</artifactId>
        <groupId>com.sun.jdmk</groupId>
    </exclusion>
    <exclusion>
        <artifactId>jmxri</artifactId>
        <groupId>com.sun.jmx</groupId>
    </exclusion>
    <exclusion>
        <artifactId>mail</artifactId>
        <groupId>javax.mail</groupId>
    </exclusion>
    <exclusion>
        <artifactId>jms</artifactId>
        <groupId>javax.jms</groupId>
    </exclusion>
  </exclusions>
</dependency>

<properties>
<slf4j.version>1.6.3</slf4j.version>  
    <log4j.version>1.2.15</log4j.version>
    <axis2.version>1.6.0</axis2.version>
    <rampart.version>1.6.0</rampart.version>
</properties>

但是,在将服务用作客户端或服务器时,您需要指定axis2-repository 运行时位置。

        // get Modulrepository
        ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem( AXIS2_REPOSITORY, null);

        // create new Stub
        Stub stub = createStub(ctx);

        // configure and engage Rampart
        ServiceClient client = stub._getServiceClient();


        Options options = client.getOptions();     

        // modify charset
        options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING, charsetEncoding );


        // // modify endpoint
        // options.setTo(new org.apache.axis2.addressing.EndpointReference( ENDPOINT_LOCATION ));

        // modify policies
        Policy policy = loadPolicy(POLICY_FILE);
        client.getAxisService().getPolicySubject().attachPolicy(policy);

实际上,由于政策验证更新,axis2-1.6.1 出现了一些问题

于 2012-04-25T15:57:07.620 回答
0

密切关注最终的 stackoverflow 错误。

http://www.slf4j.org/legacy.html jcl-over-slf4j.jar 不应与 slf4j-jcl.jar 混淆

于 2013-10-17T15:15:27.447 回答