2016-03-24 33 views
1

'da Google App Engine uygulamasında hata ayıklama Java için Google App Engine'den "Hello World" eğitimini kullanıyorum.Intellij

mvn appengine:devserver 

benim tarayıcıda Sadece başlatmak:

http://localhost:8080 

Ama Debug çalıştırdığınızda IntelliJ içinde, tarayıcı sayfası açılır ama ben yürüterek benim tarayıcıda uygulamayı çalıştırdığınızda Her şey gayet iyi çalışıyor görüntülenemiyor (Hata 403).

Sorunun, projenin Intellij'de yapılandırılma biçimiyle ilgili olması gerektiğine inanıyorum. Benim ayıklama ayarlarının ekteki ekran bakınız:

Debug settings

Ben doğrusunu yazarak ve ben IntelliJ onu çalıştırdığınızda hangisinin kullanıldığı zaman Maven komut kullanarak hangi uygulama sunucusu bana açık değildir. Intellij, Jetty'yi kullanıyor gibi görünüyor. Ben IntelliJ Debug çalıştırmak böylece

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
Copyright 2015 Google Inc. All Rights Reserved. 

Licensed under the Apache License, Version 2.0 (the "License"); 
you may not use this file except in compliance with the License. 
You may obtain a copy of the License at 

     http://www.apache.org/licenses/LICENSE-2.0 

Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, 
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
See the License for the specific language governing permissions and 
limitations under the License. 
--> 
<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> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <groupId>com.example.appengine</groupId> 
    <artifactId>appengine-helloworld</artifactId> 
    <!-- Parent POM defines ${appengine.sdk.version} (updates frequently). --> 
    <parent> 
     <groupId>com.google.cloud</groupId> 
     <artifactId>doc-samples</artifactId> 
     <version>1.0.0</version> 
     <relativePath>../..</relativePath> 
    </parent> 
    <dependencies> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <type>jar</type> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <!-- for hot reload of the web application --> 
     <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <version>3.3</version> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>com.google.appengine</groupId> 
       <artifactId>appengine-maven-plugin</artifactId> 
       <version>${appengine.sdk.version}</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

nasıl düzeltebilirim:

App Server Settings

İşte pom.xml dosyasıdır: Burada IntelliJ Uygulama Sunucusu ayarlarının bir görüntüsüdür?

cevap

3

Dev sunucunuzu Maven ile çalıştırıyorsunuz, bu nedenle Uzak hata ayıklama yapılandırması ayarlamanız gerekiyor. Çalıştır menüsü altında

  • seçin düzenle yapılandırmaları ...
  • bir yeni konfigürasyona
  • Seç Uzaktan eklemek için + simgesine (sol üst) tıklayın.

    : Bu seçenekleri

Remote debug options for App Engine

Sen 5005 yani senin pom.xml emin App Engine eklentisi bölümünü yapmak gerekir o bağlantı noktasını dinlediğini göreceksiniz aynı port numarası ile bu bölümü vardır görmelisiniz

Dev sunucuyu normal olarak başlatırsınız (8080 numaralı bağlantı noktasında veya pompanıza yapılandırdığınız her şeyde), ancak kodunuzda bir kod ayırma noktası koyabilirsiniz ve bu kodu (örneğin, sayfaya gitmek) tetiklerseniz tarayıcınızda), hata ayıklayıcısında ilerleyebilirsiniz.

+0

Sana belirtilen değişiklikler yaptı ama Debug çalıştırdığınızda alıyorum: (: 5005 localhost): ayıklayıcı portunu açılamıyor: Hata çalışan ayıklama yerel uygulama motorunu java.net.ConnectException "Bağlantı reddedildi" - Kurulumu gerekir mi bir çeşit izin mi? Bunu Mac'te çalıştırıyorum. – AndroidDev

+0

Bunu engelleyebilecek herhangi bir güvenlik duvarı var mı? Mvn çıkışınız "5005" adresindeki taşıma dt_socket için dinleme gibi bir şey gösteriyor mu? – tx802

+0

Bir güvenlik duvarının engellediğinden şüphe duyuyorum, çünkü komut mvn appengine: devserver çalışıyor. Ama 5005 numaralı portun engellenip engellenmediğinden emin değilim. Ben hiçbir Maven çıktı görmüyorum, çünkü bunu IDE'de çalıştırıyorum. – AndroidDev