2016-07-15 17 views
1

Die richtige Lösung für dieses Problem ist immer noch nicht in den Internet-Threads verfügbar. Ich habe ein Maven-Projekt in Eclipse für Jersey RESTFul Web Services. Also, Trikot erforderlich unter Bibliotheken (21 nos.) Werden in Projekt -> WEB-INF -> lib Ordner und Projekt Build-Pfad kopiert.Maven - Restful Web Service - Jersey - Kompilierungsfehler - Paket javax.ws.rs existiert nicht

aopalliance-repackaged-2.4.0-b34.jar 
asm-debug-all-5.0.4.jar 
hk2-api-2.4.0-b34.jar 
hk2-locator-2.4.0-b34.jar 
hk2-utils-2.4.0-b34.jar 
javassist-3.18.1-GA.jar 
javax.annotation-api-1.2.jar 
javax.inject-2.4.0-b34.jar 
javax.servlet-api-3.0.1.jar 
javax.ws.rs-api-2.0.1.jar 
jaxb-api-2.2.7.jar jersey-client.jar 
jersey-common.jar 
jersey-container-servlet.jar 
jersey-container-servlet-core.jar 
jersey-guava-2.23.1.jar 
jersey-media-jaxb.jar jersey-server.jar 
org.osgi.core-4.2.0.jar 
osgi-resource-locator-1.0.1.jar 
persistence-api-1.0.jar 
validation-api-1.1.0.Final.jar 

Wenn ich dieses Projekt als WAR-Datei exportieren und in Tomcat implementiert habe, kann auf den Dienst zugegriffen werden. Die tatsächliche Anforderung besteht jedoch darin, diesen Dienst auf dem WebLogic-Server auszuführen, auf dem die gleiche WAR-Datei nicht funktioniert. Also, ich muss die WAR-Datei mit Maven nicht einfach nur als WAR-Datei exportieren.

Unten sind die Schritte, die ich getan habe.

in Eclipse -> Projekt -> Rechtsklick -> laufen als Maven Build -> saubere Installation -> laufen

es immer noch etwas unter Kompilierungsfehler zu werfen.

[FEHLER] COMPILATION FEHLER: [INFO] ------------------------------------ ------------------------- [FEHLER]/Benutzer/karthik/Dokumente/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService. Java: [6,19] Paket javax.ws.rs existiert nicht [ERROR] /Users/karthik/Documents/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService.java:[7,19] Paket javax .ws.rs existiert nicht [ERROR] /Users/karthik/Documents/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService.java:[8,19] Paket javax.ws.rs existiert nicht [ FEHLER] /Users/karthik/Documents/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService.java:[9,24] package javax.ws.rs.core existiert nicht [FEHLER] /Users/karthik/Documents/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService.java:[10,24] Paket javax.ws.rs.core existiert nicht [FEHLER]/Benutzer/karthik/Dokumente/workspace/Apple_DownloadFileWS/src/com/apple/downloadws/DownloadService.java: [11,33] Paket javax.ws.rs.core.Response existiert nicht [ERROR]/Benutzer/karthik/Dokumente/Arbeitsbereich /Apple_DownloadFileWS/src/com/apple/Downloads/DownloadService.java:[23,2] kann das Symbol nicht finden Symbol: Klasse Pfad [FEHLER]/Benutzer/karthik/Dokumente/workspace/Apple_DownloadFileWS/src/com/apple/downloadws /DownloadService.java:[31,12] kann das Symbol nicht finden Symbol: Klasse Antwort

Hier ist mein pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Apple_DownloadFileWS</groupId> 
    <artifactId>Apple_DownloadFileWS</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>Apple_DownloadFileWS</name> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.glassfish.jersey.core</groupId> 
       <artifactId>jersey-client</artifactId> 
       <version>2.23.1</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.glassfish.jersey.core</groupId> 
       <artifactId>jersey-common</artifactId> 
       <version>2.11</version> 
      </dependency> 
      <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet-core --> 
      <dependency> 
       <groupId>org.glassfish.jersey.containers</groupId> 
       <artifactId>jersey-container-servlet-core</artifactId> 
       <version>2.23</version> 
      </dependency> 

      <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet --> 
      <dependency> 
       <groupId>org.glassfish.jersey.containers</groupId> 
       <artifactId>jersey-container-servlet</artifactId> 
       <version>2.23</version> 
      </dependency> 
      <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.bundles.repackaged/jersey-guava --> 
      <dependency> 
       <groupId>org.glassfish.jersey.bundles.repackaged</groupId> 
       <artifactId>jersey-guava</artifactId> 
       <version>2.23.1</version> 
      </dependency> 

      <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-jaxb --> 
      <dependency> 
       <groupId>org.glassfish.jersey.media</groupId> 
       <artifactId>jersey-media-jaxb</artifactId> 
       <version>2.23</version> 
      </dependency> 

      <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-json-jackson --> 
      <dependency> 
       <groupId>org.glassfish.jersey.media</groupId> 
       <artifactId>jersey-media-json-jackson</artifactId> 
       <version>2.23</version> 
      </dependency> 

      <dependency> 
       <groupId>javax.ws.rs</groupId> 
       <artifactId>javax.ws.rs-api</artifactId> 
       <version>2.0.1</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-server</artifactId> 
      </dependency> 

      <dependency> 
       <groupId>javax</groupId> 
       <artifactId>javaee-web-api</artifactId> 
       <version>6.0</version> 
       <scope>provided</scope> 
      </dependency> 


      <dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>jsr311-api</artifactId> 
    <version>1.1.1</version> 
</dependency> 
     </dependencies> 
    </dependencyManagement> 

</project> 

Web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>Apple_DownloadFileWS</display-name> 
    <servlet> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>com.apple.downloadws</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

Service-Klasse:

package com.apple.downloadws; 

import java.io.File; 
import java.util.logging.Logger; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response; 
import javax.ws.rs.core.Response.ResponseBuilder; 

// Plain old Java Object it does not extend as class or implements 
// an interface 

// The class registers its methods for the HTTP GET request using the @GET annotation. 
// Using the @Produces annotation, it defines that it can deliver several MIME types, 
// text, XML and HTML. 

// The browser requests per default the HTML MIME type. 

//Sets the path to base URL + /hello 
@Path("/downloadservice") 
public class DownloadService { 

    // This method is called to send the output txt file to download... 
    private static final String FILE_PATH = "/ngs/app/alect/test"; 
    @GET 
    @Path("/txt") 
    @Produces("text/plain")  
    public Response getTextFile() { 
     File file = new File(FILE_PATH); 
     Logger.getLogger("!!!!!!!!!!!"); 
     System.out.println("!!!!!!!!!!"); 
     ResponseBuilder response = Response.ok((Object) file); 
     response.header("Content-Disposition","attachment; filename=\"sample.txt\""); 
     return response.build(); 

    } 

    // This method is called if TEXT_PLAIN is request 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayPlainTextHello() { 
    return "Hello Jersey"; 
    } 

    // This method is called if XML is request 
    @GET 
    @Produces(MediaType.TEXT_XML) 
    public String sayXMLHello() { 
    return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>"; 
    } 

    // This method is called if HTML is request 
    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String sayHtmlHello() { 
    return "<html> " + "<title>" + "Hello Jersey" + "</title>" 
     + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; 
    } 

} 

Darf ich wissen, was in Maven pom.xml Abhängigkeiten gehen sollte? Ich googelte und addiere die oben genannten Abhängigkeiten und immer noch den gleichen Fehler. Fehle ich hier irgendwelche Abhängigkeiten?

Antwort

0

Sie haben alle Ihre Abhängigkeiten in der dependencyManagement Sektion aufgelistet und nicht in der dependencies Sektion Ihrer pom.xml. dependencyManagement dient zum Verwalten der Version und des Umfangs von Abhängigkeiten und ist besonders hilfreich bei vorübergehenden Abhängigkeiten oder bei der Sicherstellung der Konsistenz bei Projekten mit mehreren Modulen, wobei die Abhängigkeiten jedoch nicht auf den Klassenpfad gesetzt werden. Um die Abhängigkeiten auf den Klassenpfad zu bekommen, müssen Sie sie im Abschnitt dependencies auflisten. So wie dein Pom.Xml ist im Moment, Ihr Build hat überhaupt keine Abhängigkeiten.

+0

Hallo, ich wechselte zu RESTEasy statt JERSEY und machte die Abhängigkeiten außerhalb Abhängigkeitsverwaltung und jetzt wirft es rote Farbe Fehler im Projekt, wenn ich den Krieg Art mache. Gibt es einen Fehler in meiner Syntax? Aber wenn ich Project -> Rechtsklick -> Ausführen als -> Maven Build -> sauber installieren -> keine Fehler und BUILD SUCCESS. ist es richtig? Wenn ja, wie kann ich es mithilfe von Maven als WAR-Datei für den WebLogic-Server generieren? Die jetzt erstellte WAR-Datei enthält keine weblogic.xml-Datei. Wie generiert man diese weblogic.xml-Datei in WAR mit dem MAVEN-Tool? –

+0

UTF-8 \t \t \t JBoss Repository \t \t https: //repository.jboss. org/nexus/content/Gruppen/public-jboss/ \t \t \t org.jboss.resteasy \t \t Resteasy-jaxrs \t \t 3.0.4.Final \t

+0

\t \t \t \t \t org.apache.maven.plugins \t \t \t Maven-Krieg-Plugin \t \t \t \t \t \t \t WebContent \ WEB-INF \ web.xml \t \t \t \t \t wahr src/main/resources WEB-INF/weblogic.xml

Verwandte Themen