1

Java アプリケーションを Tomcat サーバー (Windows) にデプロイしようとしていますが、次のエラーが発生します。次の接続エラーに関するガイドラインを教えてください。管理者権限があり、サーバーはローカルで実行されています。

C:\builds>cap local deploy
DL is deprecated, please use Fiddle
  * 2013-04-01 14:19:06 executing `local'
  * 2013-04-01 14:19:06 executing `deploy'
  * 2013-04-01 14:19:06 executing `deploy:update'
 ** transaction: start
  * 2013-04-01 14:19:06 executing `deploy:update_code'
  * executing "xcopy C:/_Savita/app/my-app \"C:/builds/releases/20
130401084906\" /S/I/Y/Q/E && (echo  > C:/builds/releases/20130401084906/REVISION
)"
    servers: ["localhost"]
*** [deploy:update_code] rolling back
  * executing "rm -rf C:/builds/releases/20130401084906; true"
    servers: ["localhost"]
 ** [deploy:update_code] exception while rolling back: Capistrano::ConnectionErr
or, connection failed for: localhost (Errno::ECONNREFUSED: No connection could b
e made because the target machine actively refused it. - connect(2))
connection failed for: localhost (Errno::ECONNREFUSED: No connection could be ma
de because the target machine actively refused it. - connect(2))

使用したデプロイ スクリプトを以下に示します。

set :application, "myApp"
#set :scm, "git"
set :repository, "C:/_Savita/app/my-app"
#set :branch, "master"

default_run_options[:pty] = true
ssh_options[:forward_agent] = true 

task :local do
    roles.clear
    server "localhost", :app 
    set :user, "Savita Doddamani" 
    set :java_home, "C:/Program Files (x86)/Java/jdk1.6.0_25" 
    set :tomcat_home, "C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0"
    set :tomcat_manager, "user"
    set :tomcat_manager_password, "pwd"
    set :maven_home, "C:/_Savita/softwares/apache-maven-2.2.1"
    set :deploy_to, "C:/builds/" 
    set :use_sudo, false
    namespace :tomcat do
      task :deploy do
        puts "==================Building with Maven======================" #Line 22
        run "export JAVA_HOME=#{java_home} && cd #{deploy_to}/ && #{maven_home}/bin/mvn clean install package -DskipTests"
        puts "==================Undeploy war======================"#Line 24
        run "curl --user #{tomcat_manager}:#{tomcat_manager_password} http://$CAPISTRANO:HOST$:8080/manager/text/undeploy?path=/#{application}"
        puts "==================Deploy war to Tomcat======================" #Line 26
        run "curl --upload-file #{deploy_to}/current/target/dist/local/#{application}*.war --user #{tomcat_manager}:#{tomcat_manager_password} http://$CAPISTRANO:HOST$:8080/manager/text/deploy?path=/#{application}"
      end
    end
    after "deploy", "tomcat:deploy" #Line 30
    after "tomcat:deploy", "deploy:cleanup" # keep only the last 5 releases
end 
4

1 に答える 1

0

ECONNREFUSEDconnect(2)システムコールからのリターンです。これは、サーバー プロセスが TCP ポート 8080 でリッスンしていないことを意味します。Java の起動に時間がかかり、接続を試みるのがcurl早すぎるか、ポート 8080 でリッスンするように Tomcat を構成していないか、Tomcat をまったく起動していない可能性があります。

于 2013-04-11T23:03:47.007 に答える