Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDK6HTTP服务器上Spring3的REST服务_Java_Spring_Rest_Spring Mvc_Simplehttpserver - Fatal编程技术网

Java JDK6HTTP服务器上Spring3的REST服务

Java JDK6HTTP服务器上Spring3的REST服务,java,spring,rest,spring-mvc,simplehttpserver,Java,Spring,Rest,Spring Mvc,Simplehttpserver,有没有可能在没有servlet容器的情况下使用Spring3.0创建REST服务?因为我不想使用应用服务器。 我试图用SimpleHttpInvokerServiceExporter和SpringMVC创建REST服务,但我得到了一个java.lang.NoClassDefFoundError:javax/servlet/ServletException,因为我不使用servlet容器。我的代码如下所示: <beans> ... <bean name="servic

有没有可能在没有servlet容器的情况下使用Spring3.0创建REST服务?因为我不想使用应用服务器。 我试图用SimpleHttpInvokerServiceExporter和SpringMVC创建REST服务,但我得到了一个
java.lang.NoClassDefFoundError:javax/servlet/ServletException
,因为我不使用servlet容器。我的代码如下所示:

<beans>
  ...
    <bean name="serviceFacadeExporter" 
       class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter">
        <property name="service" ref="serviceFacade" />
        <property name="serviceInterface" value="facade.ServiceFacade" />
    </bean>
    <bean id="httpServer"
        class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
            <property name="contexts">
                <map>
                    <entry key="/api/" value-ref="serviceFacadeExporter" />
                </map>
            </property>
             <property name="port" value="8082" />
    </bean>
   ...
</beans>

SpringMVC需要ServletAPI

您可以通过以下方式使用JSE6HTTP服务器创建一个简单的Rest服务

您可以创建一个资源类

@Path("/helloworld")
public class MyResource {

    // The Java method will process HTTP GET requests
    @GET
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String getClichedMessage() {
        // Return some cliched textual content
        return "Hello World";
    }
}
您可以创建一个Rest应用程序

public class MyApplication extends javax.ws.rs.core.Application{
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(MyResource.class);
        return s;
    }
}
就这些。不需要Spring MVC

出于测试目的,这工作得非常好,对于许多请求的高效使用,我将使用Jetty或Tomcat之类的WebContainer

可以找到关于如何使用标准JSE6HttpServer构建RESTFul的更详细描述
(德语)

First REST表示HTTP。因此,您需要servlet容器来满足REST请求。我想使用Jdk6 HTTP服务器。所以我的http没有servlet容器。你为什么不想在servlet容器中运行呢?谢谢你,这对我帮助很大,但是如果知道是否有一种方法可以解决spring远程处理的这个问题,那将是很有趣的。是的。。。其次,我也希望看到Spring和SpringMVC解决了这个问题。
public class MyApplication extends javax.ws.rs.core.Application{
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(MyResource.class);
        return s;
    }
}
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 25);
HttpContext context = server.createContext("/resources");
HttpHandler handler = RuntimeDelegate.getInstance().createEndpoint
(new MyApplication(), HttpHandler.class);
context.setHandler(handler);
server.start();