1

我无法在同一个 Java Web 应用程序中使用 restlet 服务器和客户端 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 支持客户端和服务器端。也就是说,org.restlet.extension.XXX可以将扩展名(名称为 的 jar 文件)指定到一侧或另一侧或两者。这取决于扩展名。

你能给我我们尝试使用的罐子的清单吗?

这是一个示例 pom 文件,可用于初始化 Restlet 项目的依赖项:

<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 回答