【发布时间】:2012-04-05 22:00:49
【问题描述】:
是否有可能在没有 servlet 容器的情况下使用 spring 3.0 创建 REST 服务?因为我不想使用应用服务器。
我尝试使用 SimpleHttpInvokerServiceExporter 和 Spring MVC 创建 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>
服务看起来像这样
@Controller
public class ServiceFacadeImpl implements ServiceFacade {
@Override
@RequestMapping(value = "/protein/search/{searchString}")
public long searchProtein(@PathVariable String searchString) {
return 0;
}
}
【问题讨论】:
-
第一个 REST 意味着 HTTP。所以你需要 servlet 容器来服务你的 REST 请求。
-
我想使用 Jdk6 Http 服务器。所以我有没有 servlet 容器的 http。
-
为什么不想在 servlet 容器中运行?
标签: java spring rest spring-mvc simplehttpserver