2016-05-04 17 views
0

Ich versuche, eine einzelne Seite Web-Anwendung in Angularjs mit Spark Java auf einer Anlegestelle geschrieben zu erstellen, ist das Projekt in Eclipse Kepler als Maven-Projekt geschrieben. der Fehler, den ich erhalte, wenn ich in die URL http://localhost:8085/ gehe, ist wie folgt, und es spielt keine Rolle, wenn ich versuche, auf andere URLs zuzugreifen oder direkt auf die index.html/jsp zu verweisen, wird immer noch der gleiche Fehler angezeigt.Sparkjava mit einem Jetty gibt 404

HTTP-FEHLER 404 Problem beim Zugriff auf /. Grund: Nicht von Jetty Powered Gefunden: //

Eclipse-Konsole zeigt, dass der Server und

== Funke hat gezündet läuft ... Zuhören auf localhost: 8085 [Gewinde- 2] INFO org.eclipse.jetty.server.Server - jetty-9.0.2.v20130417 [Thema-2] INFO org.eclipse.jetty.server.ServerConnector - Gestartet [email protected]{HTTP/1.1}{localhost: 8085}

Das Paket hinzugefügt Alter Explorer, falls das helfen könnte.

enter image description here

Ich werde einige der Dateien Code hinzufügen, und wenn Bewegung benötigt wird, lassen Sie mich einfach wissen und schlecht bearbeiten, um sie hinzuzufügen.

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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>todoapp</groupId> 
    <artifactId>todoapp1</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <properties> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.sparkjava</groupId> 
      <artifactId>spark-core</artifactId> 
      <version>2.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-simple</artifactId> 
      <version>1.7.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>2.11.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.0.2.v20130417</version> 
       <configuration> 
        <webApp> 
         <contextPath>/public</contextPath> 
        </webApp> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <createDependencyReducedPom>true</createDependencyReducedPom> 
        <filters> 
         <filter> 
          <artifact>*:*</artifact> 
          <excludes> 
           <exclude>META-INF/*.SF</exclude> 
           <exclude>META-INF/*.DSA</exclude> 
           <exclude>META-INF/*.RSA</exclude> 
          </excludes> 
         </filter> 
        </filters> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <transformer 
             implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>com.todoapp.Bootstrap</mainClass> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

Bootstrap.java

package com.todoapp; 

import com.mongodb.*; 

import static spark.Spark.setIpAddress; 
import static spark.Spark.setPort; 
import static spark.SparkBase.staticFileLocation; 

public class Bootstrap { 
    private static final String IP_ADDRESS = System.getenv("OPENSHIFT_DIY_IP") != null ? System.getenv("OPENSHIFT_DIY_IP") : "localhost"; 
    private static final int PORT = System.getenv("OPENSHIFT_DIY_IP") != null ? Integer.parseInt(System.getenv("OPENSHIFT_DIY_IP")) : 8085; 

    public static void main(String[] args) throws Exception { 
     setIpAddress(IP_ADDRESS); 
     setPort(PORT); 
     staticFileLocation("/public"); 
     new TodoResource(new TodoService(mongo())); 
    } 

    private static DB mongo() throws Exception { 
     String host = System.getenv("OPENSHIFT_MONGODB_DB_HOST"); 
     if (host == null) { 
      MongoClient mongoClient = new MongoClient("localhost"); 
      return mongoClient.getDB("todoapp"); 
     } 
     int port = Integer.parseInt(System.getenv("OPENSHIFT_MONGODB_DB_PORT")); 
     String dbname = System.getenv("OPENSHIFT_APP_NAME"); 
     String username = System.getenv("OPENSHIFT_MONGODB_DB_USERNAME"); 
     String password = System.getenv("OPENSHIFT_MONGODB_DB_PASSWORD"); 
     MongoClientOptions mongoClientOptions = MongoClientOptions.builder().connectionsPerHost(20).build(); 
     MongoClient mongoClient = new MongoClient(new ServerAddress(host, port), mongoClientOptions); 
     mongoClient.setWriteConcern(WriteConcern.SAFE); 
     DB db = mongoClient.getDB(dbname); 
     if (db.authenticate(username, password.toCharArray())) { 
      return db; 
     } else { 
      throw new RuntimeException("Not able to authenticate with MongoDB"); 
     } 
    } 
} 

dieses 2-Dateien sind diejenigen, die Verantwortung für den Anlegesteg-Server, jetzt habe ich das Internet für mehr als forsch wurden Heute versuche ich, eine Lösung und Gründe für diesen Fehler zu finden, aber nichts hat mir geholfen.

Antwort

1

Stellen Sie sicher, dass Ihr Verzeichnis /public, in dem Ihre HTML-Dateien landen, über den Klassenpfad Ihres Projekts zugänglich ist. Um dies zu testen, versuchen Sie staticFiles.externalLocation (dies für Version 2.5, externalStaticFileLocation in Ihrem Fall) mit dem vollständigen Pfad zu /public als Parameter. Wenn es funktioniert, würden Sie wahrscheinlich Ihre /public -Verzeichnis an den gleichen Speicherort wie Ihre Java-Pakete verschieben und es wird mit staticFileLocation("/public") arbeiten, wie Sie erwarten.