Comment écrire Jersey Multipart webapp, Serveur Tomcat
J'ai fait beaucoup de REPOS, des tutoriels et de les apprécier. Récemment, j'ai essayé d'écrire un maillot multipart webapp avec Netbeans mais je ne semble pas, car il semble que quelque chose manque mon maillot de la bibliothèque.
J'ai téléchargé le jersey-multipart.jar fichier, mais encore cela ne l'aide pas:
@Path("/file")
public class UploadFileService {
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
Ce code est de blog. Je suis en train de le mettre dans ma webapp, mais l' @FormDataParam tag et le FormDataContentDisposition de classe ne sont pas reconnus. J'ai téléchargé le jersey-multipart.jar et qui a semblé résoudre le @FormDataParam tag problème, mais pas le FormDataContentDisposition classe.
Je suis en utilisant Tomcat 7.0.
Comment dois-je faire pour réussir à créer un maillot multipart webapp sans aucun problème? Et comment se fait le maillot-multipart fichier jar n'est pas inclus dans le maillot de la bibliothèque dans Netbeans?
Grâce.
Salut Lutz, j'ai édité la question pour expliquer ce qui se passe réellement.
OriginalL'auteur Akin_Glen | 2014-04-03
Vous devez vous connecter pour publier un commentaire.
Lutz Corne a un point, mais pour le bien de ceux à l'aide de Netbeans 7.4 (Java EE 6) et sont encore aux prises avec ce problème, voici une étape par étape sur la façon de créer votre propre multipart de services web rest et le déploiement sur Tomcat, avec Netbeans. (Remarque, le déploiement sur Glassfish nécessite une configuration légèrement différente, ce qui n'est pas couvert dans cette réponse).
Tout d'abord, ma suggestion est de créer un maven application web et pas normale de l'application web. La raison est, JAX-RS et Jersey bibliothèques qui viennent avec Java EE 6 ne sont pas suffisants, et une fois que vous commencer à bidouiller avec externe les bocaux, les choses ont tendance à déraper, surtout avec Jersey. (Heureusement, cela a été corrigé dans Netbeans 8.0 (Java EE 7)).
(1) Créer un maven web-app, choisissez Java EE 6 et Tomcat 7. Une fois que vous avez terminé, vous remarquerez que vous n'avez pas de web.xml. La plupart des multipart tutoriels vont vous dire d'inclure certaines configurations dans votre web.xml fichier. Ne vous embêtez pas avec ça. Vous n'avez pas besoin d'un web.xml fichier.
(2) Créer une Détente de service web en écrivant manuellement ou à l'aide de l'assistant (clic droit sur votre maven web-app -- Nouveau -- Autres -- Services Web - [choisir le service web RESTful vous voulez])
(3) Ouvrez votre pom.xml (vous pouvez le trouver sous le Fichiers de Projet dossier dans votre maven web-app) et ajouter ces dépendances:
Si vous faites cela pour la première fois, vous avez besoin d'une connexion internet active, comme maven télécharge les dépendances de son référentiel central.
(4) Accédez à votre ApplicationConfig classe ou quelle que soit la classe qui détient qui contient votre @ApplicationPath(). Il devrait ressembler à ceci:
Remarque: ressources.ajouter(MultiPartFeature.class); Qui doit être inclus, sinon Jersey multipart ne fonctionne pas.
La raison pour laquelle je mettre cette ligne de code dans le getClasses méthode et non pas le addRestResourceClasses méthode est parce que le addRestResourceClasses méthode est modifié à chaque fois qu'il y a un changement à votre classe de ressource, et si vous incluez le MultiPartFeature code là, il sera effacé.
Une fois que vous avez fait toutes ces choses, vous êtes bon pour aller.
Si vous êtes simplement à la recherche pour créer un service web RESTful sans multipart, suivez les étapes 1 à 3, mais à l'étape 3 ne comprennent pas les jersey-médias-multipart dépendance.
J'espère que cela vous aide à vous 😉
OriginalL'auteur Akin_Glen
Les importations pour ces deux sont
Si vous utilisez Maven, ajouter ce dépendances:
OriginalL'auteur
Avec
jersey-media-multipart
de dépendance, au lieu deApplication
(voir ci-dessous), vous pouvez configurerResourceConfig
:ou Jersey RESTE de la configuration dans
web.xml
:OriginalL'auteur GKislin