1

同じ Java Web アプリケーションで restlet サーバーとクライアント jar を使用できません。問題は、サーバーとクライアントの一部の jar が同じ名前であることです。重複したjarを削除しようとすると、次のようなエラーが発生します

java.lang.NoSuchMethodError: org.restlet.Context.getClientDispatcher()Lorg/restlet/Restlet;
  org.restlet.resource.ClientResource.createNext(ClientResource.java:503)
  org.restlet.resource.ClientResource.getNext(ClientResource.java:829)
  org.restlet.resource.ClientResource.handleOutbound(ClientResource.java:1221)
  org.restlet.resource.ClientResource.handle(ClientResource.java:1068)
  org.restlet.resource.ClientResource.handle(ClientResource.java:1044)
  org.restlet.resource.ClientResource.post(ClientResource.java:1453)
  com.xxxxxx.web.restletclient.services.CommonService.sendRequest(CommonService.java:25)
  com.xxxxxx.web.restletclient.services.adminService.execute(adminService.java:24)
  com.xxxxxx.web.restletclient.client.adminLoginClient.connect(AdminLoginClient.java:41)
  com.xxxxxx.web.action.operator.adminLoginAction.performAction(adminLoginAction.java:75)
  com.xxxxxx.common.action.AbstractBaseAction.execute(AbstractBaseAction.java:137)
  org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
  org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
  org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
  org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

私のシナリオは、Web アプリケーションが Web サービス クライアントとしてもサーバーとしても機能するようなものです。そのため、同じ Web アプリケーションで restlet クライアントとサーバー jar を使用できるオプションを探しています。ネットで検索しましたが、うまくいく解決策はまだ見つかりませんでした。

ご協力ありがとうございました。

4

1 に答える 1

0

実際、Restlet のコア jar はクライアント側とサーバー側の両方をサポートしています。つまり、拡張機能 ( という名前の jar ファイルorg.restlet.extension.XXX) は、一方または他方、または両方に指定できます。拡張子によります。

使用しようとした瓶のリストを教えていただけますか?

以下は、Restlet プロジェクトの依存関係を初期化するために使用できるサンプル pom ファイルです。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                     http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.restlet</groupId>
    <artifactId>restlet-war</artifactId>
    <name>${project.artifactId}</name>
    <packaging>war</packaging>
    <version>1.0.0-snapshot</version>

    <properties>
        <java-version>1.7</java-version>
        <restlet-version>2.3.1</restlet-version>
        <wtp-version>2.0</wtp-version>
    </properties>

    <dependencies>
        <!-- Restlet core -->
        <dependency>
            <groupId>org.restlet.jee</groupId>
            <artifactId>org.restlet</artifactId>
            <version>${restlet-version}</version>
        </dependency>

        <!-- To embed Restlet within a servlet container -->
        <dependency>
            <groupId>org.restlet.jee</groupId>
            <artifactId>org.restlet.ext.servlet</artifactId>
            <version>${restlet-version}</version>
        </dependency>

        <!-- To use HTTP Client to actual make HTTP
             requests under the hood -->
        <dependency>
            <groupId>org.restlet.jee</groupId>
            <artifactId>org.restlet.ext.httpclient</artifactId>
            <version>${restlet-version}</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>maven-restlet</id>
            <name>Public online Restlet repository</name>
            <url>http://maven.restlet.com</url>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>install</id>
                        <phase>install</phase>
                        <goals>
                            <goal>sources</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <wtpapplicationxml>true</wtpapplicationxml>
                    <wtpversion>${wtp-version}</wtpversion>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

お役に立てば幸いです、ティエリー

于 2015-06-15T08:55:42.913 に答える