3

城壁でaxis2クライアントを使用するMaven統合テストがあります。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

次のpom抽出で、軸2-1.6.0とrampart-1.6.0を使用しました:

<!-- 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 に答える