如果您的项目正在使用
org.glassfish,则您正在使用Jersey 2,
com.sun即Jersey
1,则永远不要混用两者。话虽如此,您面临的错误很可能是由于您没有注册
MultipartFeature。在启动时对资源模型(资源方法)进行“正确性”验证时,如果未注册功能,则该功能特有的注释是未知的,就像没有注释一样。而且,您不能有多个不带注释的方法参数。
如果您使用
ResourceConfig,则可以简单地使用
public class JerseyConfig extends ResourceConfig { public JerseyConfig() { register(MultiPartFeature.class); }}如果您使用的是web.xml,则可
<init-param>以为您注册的Jersey servlet 设置一个
<init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> </init-param>
“我还想为Web服务添加另一个String参数。我该怎么办?”
您需要将其作为多部分请求的一部分,而客户端也需要确保将其作为多部分的一部分发送。在服务器端,只需添加另一个
@FormDataParam("anotherString")StringanotherString作为方法参数即可。至于客户端,我不知道jQuery可以帮上忙。尚未测试,但是您可以尝试执行此操作,该操作显示数据已追加到FormParam。这是Angular的功能,我自己在其中构建了请求主体。可能有点多,因为您可能不需要显式设置内容类型。



