Lutz Horn讲了一点,但是对于那些使用Netbeans 7.4(Java EE
6)并仍在努力解决此问题的人来说,这是一步一步地介绍如何创建自己的多部分rest Web服务并在Tomcat上进行部署,以及 Netbeans
。(请注意,在Glassfish上进行部署需要稍有不同的配置,此答案中未涉及)。
首先,我的建议是创建一个Maven Web应用程序,而不是普通的Web应用程序。原因是,Java EE 6附带的JAX-
RS和Jersey库还不够用,一旦您开始使用外部jar摆弄,事情就会变得混乱,尤其是对于Jersey。(希望在Netbeans 8.0(Java EE
7)中已更正此问题。)
(1)创建一个maven Web应用程序,选择Java EE
6和Tomcat7。完成后,您会发现您没有web.xml。大多数多部分教程将告诉您在web.xml文件中包括某些配置。不要理会。您不需要web.xml文件。
(2)通过手动编写或使用向导创建RESTfull Web服务(右键单击您的maven Web应用-新建-其他-Web服务-[选择所需的RESTful
Web服务])
(3)打开pom.xml(可以在maven Web应用程序的 Project Files文件 夹下找到它)并添加以下依赖项:
<dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <version>2.7</version> </dependency>
如果您是第一次这样做,则需要有效的Internet连接,因为maven将从其中央存储库下载依赖项。
(4)转到您的 ApplicationConfig 类或任何包含@ApplicationPath()的类。它看起来应该像这样:
@javax.ws.rs.ApplicationPath("webresources")public class ApplicationConfig extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> resources = new java.util.HashSet<Class<?>>(); resources.add(MultiPartFeature.class); addRestResourceClasses(resources); return resources; } private void addRestResourceClasses(Set<Class<?>> resources) { resources.add(com.mycompany.mavenrestuploader.UploaderResource.class); }注意: resources.add(MultiPartFeature.class); 这必须包括在内,否则Jersey的多重部分将无法工作。
我将这行代码放入getClasses方法而不是addRestResourceClasses方法的原因是因为只要资源类发生更改,addRestResourceClasses方法都会被修改,并且如果其中包含MultiPartFeature代码,它将被删除。
一旦完成所有这些事情,就可以开始了。
如果您只是想创建不带多部分的RESTful Web服务,请执行步骤1至3,但在步骤3中不要包括 jersey-media-multipart
依赖项。
我希望这可以帮助你 ;)



