2015-03-26 7 views
1

В настоящее время я пытаюсь узнать, как использовать maven и jetty. Но у меня проблема, моя страница Джерси бросает ошибку 500, ошибка сама по себе не моя проблема. Но я хотел бы молы, чтобы отобразить полное сообщение об ошибке для меня вместо того, чтобы простоForce jetty для отображения информации об ошибке

HTTP ERROR 500 

Problem accessing /hello. Reason: 

    Internal Server Error 

Как я могу получить молы, чтобы отобразить детали полной ошибки при его возникновении ошибок, как это? Вот мой ПОМ файл

<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/maven-v4_0_0.xsd"> 

    <properties> 
     <docker.imageName>${artifactId}</docker.imageName> 
     <spring.version>4.1.5.RELEASE</spring.version> 
     <jersey.version>2.5</jersey.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.mysite</groupId> 
    <artifactId>mycode</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>mycode</name> 

    <build> 
     <finalName>${artifactId}</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.2.2.v20140723</version> 
       <configuration> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <!-- <jettyConfig>jetty.xml</jettyConfig> --> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <inherited>true</inherited> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>com.atlassian.maven.plugins</groupId> 
       <artifactId>bash-maven-plugin</artifactId> 
       <version>1.0-ts-20141204</version> 
       <executions> 
        <execution> 
         <id>package</id> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <phase>package</phase> 
         <configuration> 
          <script> 
           rsync -a --delete ${project.basedir}/docker/ ${project.build.directory}/docker 
           cp -p ${project.build.directory}/${project.build.finalName}.war ${project.build.directory}/docker/root.war 
           find ${project.build.directory}/docker | xargs touch -t 197409101630.00 
           docker build -f DockerfileBase -t mysite/jettybase ${project.build.directory}/docker 
           docker build -t mysite/${docker.imageName} ${project.build.directory}/docker 
          </script> 
         </configuration> 
        </execution> 
        <execution> 
         <id>deploy</id> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <phase>deploy</phase> 
         <configuration> 
          <script> 
           <!--docker push ${docker.imageName}--> 
           echo '123' 
          </script> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <!-- Jersey --> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>${jersey.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.glassfish.jersey.media</groupId> 
      <artifactId>jersey-media-moxy</artifactId> 
      <version>${jersey.version}</version> 
     </dependency> 


     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core" --> 
      <artifactId>jersey-container-servlet</artifactId> 
      <version>${jersey.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>${jersey.version}</version> 
     </dependency> 

     <!-- Jersey + Spring --> 
     <dependency> 
      <groupId>org.glassfish.jersey.ext</groupId> 
      <artifactId>jersey-spring3</artifactId> 
      <version>${jersey.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-web</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-context</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <!-- Spring dependencies --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-expression</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
    </dependencies> 
</project> 

ответ

2

Если какой-либо из ваших сервлетов или фильтров делает response.sendError (500), это то, что вы получите. нет stacktrace.

Если у вас нет сервера ErrorHandler на определенном сервере, это также то, что вы получите.

Если у вас есть ErrorHandler, то либо он вызвал .setShowStacks (false), либо просто не отображался стек.

Если выход говорит Powered by Jetty://, то он был произведен чем-то в Jetty, если нет, то это не компонент Jetty, создающий эту страницу ошибок.

Наконец, вы можете просто настроить свой собственный вручая Ошибка в WEB-INF/web.xml для веб-приложение, используйте документацию для помощи (например, какие атрибуты использовать, чтобы получить соответствующую StackTrace для вас из объекта запроса)

https://www.eclipse.org/jetty/documentation/current/custom-error-pages.html