gradle-cargo-plugin icon indicating copy to clipboard operation
gradle-cargo-plugin copied to clipboard

Port connection not reached

Open jeusdi opened this issue 8 years ago • 28 comments

I'm getting this message:

14:23:42.135 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@26b625127 pairs: {POST /management/add-content HTTP/1.1: null}{Connection: close}{Content-Type: multipart/form-data; boundary=CargoBoundary}{User-Agent: Java/1.8.0_45}{Host: localhost:9990}{Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2}{Content-Length: 29831794} 14:23:42.253 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@1fdcbf871 pairs: {Content-type: unknown/unknown} 14:23:42.254 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':deployDevWildfly10' 14:23:42.254 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :deployDevWildfly10 FAILED 14:23:42.254 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :deployDevWildfly10 (Thread[Daemon worker Thread 5,5,main]) completed. Took 2.664 secs. 14:23:42.254 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.5 completed (0 in use) 14:23:42.254 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 5,5,main]] finished, busy: 2.991 secs, idle: 0.001 secs 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception. 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong: 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':deployDevWildfly10'. 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > org.codehaus.cargo.util.CargoException: HTTP request failed, response code: -1, response message: null, response body: 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try: 14:23:42.255 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. 14:23:42.255 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] 14:23:42.255 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED 14:23:42.255 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] 14:23:42.255 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] Total time: 5.263 secs

Nevertheless, my task sets the port to connect to is 9992 instead of used 9990! So, the connection is refused! How could I change the port?

def remoteContainers = [
	new RemoteContainer(
		name: 'wildfly10',
		container: 'wildfly10x',
		hostname: 'localhost',
		port: 9992,
		username: '----',
		password: '----',
        purpose: 'development'
	)
]

remoteContainers.each { config ->
	task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
		description = "Deploys WAR to remote Web Application Server: '${config.name}'."
		containerId = config.container
		hostname = config.hostname
		port = config.port
		username = config.username
		password = config.password
		context = "webapi"
		dependsOn = [createDevelopmentWar]
	}
}

jeusdi avatar Jan 26 '17 13:01 jeusdi

Seems to work properly for me with your provided sample project. I see the following output when run with gradle deployDevWildfly10 -i.

Deployable artifacts = [/Users/bmuschko/dev/projects/gradle-playground/cargo/build/dist/webapi-dev-.war]
Starting action 'deploy' for remote container 'wildfly10x' on 'http://localhost:2200'

BTW: Did you intend to post your password in the code sample?

bmuschko avatar Jan 26 '17 16:01 bmuschko

I've just realized that I'm getting different messages when I'm using --debug and --info.

When I perform gradle deployDevWildfly10 --info I'm getting this message:

Deployable artifacts = [D:\projects\living\platform\commty\build\dists\commty-dev-de31042.war] Starting action 'deploy' for remote container 'wildfly10x' on 'http://localhost:9992' Container properties = [:] :deployDevWildfly10 FAILED

Otherwise, using gradle deployDevWildfly10 --debug I'm getting these messages:

08:30:20.505 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@5b565a527 pairs: {POST /management/add-content HTTP/1.1: null}{Connection: close}{Content-Type: multipart/form-data; boundary=CargoBoundary}{User-Agent: Java/1.8.0_45}{Host: localhost:9990}{Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2}{Content-Length: 29832076} 08:30:20.627 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@4a857f181 pairs: {Content-type: unknown/unknown} 08:30:20.627 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':deployDevWildfly10' 08:30:20.627 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :deployDevWildfly10 FAILED

This is my last gradle script.

jeusdi avatar Jan 27 '17 07:01 jeusdi

I've been trying it for a some days ago, and I'm not able reach my server.

Nevertheless, I'm able to log in using web interface.

Any ideas?

jeusdi avatar Jan 30 '17 20:01 jeusdi

My guess is that you'll have to change the HTTP management port explicitly by a property. That's pre-set by Cargo. For more information see cargo.jboss.management-http.port under Runtime Configuration Properties.

In your task creation you'll have to assign something to the property containerProperties. Something like this (haven't tried it):

remoteContainers.each { config ->
    task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
        containerProperties['cargo.jboss.management-http.port', 2222]
    }
}

bmuschko avatar Feb 01 '17 15:02 bmuschko

Thanks @bmuschko I've added the containerProperties:

remoteContainers.each { config ->
	task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
		description = "Deploys WAR to remote Web Application Server: '${config.name}'."
		containerId = config.container
		hostname = config.hostname
		port = config.port
		username = config.username
		password = config.password
		context = "webapi"
		dependsOn = [createDevelopmentWar]
		deployables = [new com.bmuschko.gradle.cargo.convention.Deployable(file: createDevelopmentWar.archivePath)]
		containerProperties['cargo.jboss.management-http.port', 9992]
	}

Nevertheless, I keep getting the same message:

09:37:16.667 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@6bcedb777 pairs: {POST /management/add-content HTTP/1.1: null}{Connection: close}{Content-Type: multipart/form-data; boundary=CargoBoundary}{User-Agent: Java/1.8.0_45}{Host: localhost:9990}{Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2}{Content-Length: 29869382}

I'd like you look at cargo dependencies. Currently, I'm setting these dependencies in order to connect cargo with wildfly10:

dependencies {
    cargo 'org.wildfly:wildfly-controller-client:8.2.0.Final'
    cargo 'org.codehaus.cargo:cargo-core-uberjar:1.6.2'
    cargo 'org.codehaus.cargo:cargo-ant:1.6.2'
}

Am I using the correct dependencies in order to connect cargo with a wildfly 10 instance?

jeusdi avatar Feb 02 '17 08:02 jeusdi

In that I case I do not know. I suggest you ask about this on the Cargo user mailing list.

bmuschko avatar Feb 06 '17 15:02 bmuschko

I have briefly checked the management-http functionality from Codehaus Cargo side, it should work if cargo.jboss.management-http.port is set in Cargo configuration. @jeusdi Can you check if that containerProperties value is propagated all the way down to Codehaus Cargo?

sutaakar avatar Feb 07 '17 21:02 sutaakar

Thanks @sutaakar for your comment.

Nevertheless, I don't quite know what you exactly mean to... I mean, I don't know how to dig into Codehaus Cargo from my gradle script... Do you mean I take a look on debug? Nevertheless, how can I get this exactly information? Are you thinking about configuring any logger?

I think the messages I get from the task execution shows ho gradle plugin is reporting me correct port:

08:38:41.235 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':deployDevWildfly10'. 08:38:41.235 [INFO] [org.gradle.api.Task] Deployable artifacts = [D:\projects\living\platform\commty\build\dists\commty-dev-aefaba1-dirty.war] 08:38:41.236 [INFO] [org.gradle.api.Task] Starting action 'deploy' for remote container 'wildfly10x' on 'http://localhost:9992'

Nevertheless, it seems that it's trying to connect to 9990 instead of 9992:

08:38:42.130 [DEBUG] [sun.net.www.protocol.http.HttpURLConnection] sun.net.www.MessageHeader@78b79fc97 pairs: {POST /management/add-content HTTP/1.1: null}{Connection: close}{Content-Type: multipart/form-data; boundary=CargoBoundary}{User-Agent: Java/1.8.0_45}{Host: localhost:9990}{Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2}{Content-Length: 29870112}

Sorry.

jeusdi avatar Feb 08 '17 07:02 jeusdi

I meant, I'm absolutly willing to help out adquiring that information, but I don't quite how exactly get it.

Could you give me some lights?

jeusdi avatar Feb 09 '17 15:02 jeusdi

@jeusdi Can you please debug your Cargo execution? If I understand correctly then this plugin should use Cargo Ant plugin. In that case every container property should be passed to Cargo core here: https://github.com/codehaus-cargo/cargo/blob/master/extensions/ant/tasks/src/main/java/org/codehaus/cargo/ant/ConfigurationElement.java#L325-L328

Can you please put a breakpoint there and check if cargo.jboss.management-http.port is passed there?

sutaakar avatar Feb 10 '17 07:02 sutaakar

Is there some tutorial showing how to debug and set a breakpoint to an Ant plugin from gradle? I've been to see, how to enable debugger on gradle, nevertheless, which code do I need to debug exactly?

jeusdi avatar Feb 10 '17 07:02 jeusdi

You may try to use GRADLE_OPTS, see https://discuss.gradle.org/t/how-do-you-attach-a-debugger-to-gradle-so-that-i-can-debug-it-running-a-task/7526 . This Cargo Ant plugin can be debugged as any other java application, you will probably need to import the https://github.com/codehaus-cargo/cargo/tree/master/extensions/ant/tasks to be able to properly place debug point to the class.

sutaakar avatar Feb 10 '17 07:02 sutaakar

I've imported code from repository. I've set a breakpoint on line 325 Gradle is listening on 5006.

Nevertheless, breakpoint is not reached. Any ideas?

imagen

jeusdi avatar Feb 10 '17 09:02 jeusdi

Put a breakpoint to https://github.com/codehaus-cargo/cargo/blob/master/core/containers/wildfly/src/main/java/org/codehaus/cargo/container/wildfly/internal/AbstractWildFlyRemoteDeployer.java#L85 . This line should definitely be reached. If it is so check the value of management port. If it is 9990 then it is default value. Try to backtrack to place where this deployer is instantiated. It is constructed with Container parameter. Container should be created using configuration, this configuration should contain property cargo.jboss.management-http.port with your custom value.

sutaakar avatar Feb 10 '17 09:02 sutaakar

It's not reached! Nevertheless, debugger is attached...

imagen

jeusdi avatar Feb 10 '17 09:02 jeusdi

Try to put breakpoint to constructor - line 74.

sutaakar avatar Feb 10 '17 09:02 sutaakar

It's not reached :anguished:

jeusdi avatar Feb 10 '17 10:02 jeusdi

Seems that java debug has to be activated differently: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html try to use parameter --debug-jvm

sutaakar avatar Feb 10 '17 10:02 sutaakar

I'm getting this message:

Problem configuring task :deployDevWildfly10 from command line. Unknown command-line option '--debug-jvm'.

jeusdi avatar Feb 10 '17 11:02 jeusdi

Hmm, from https://discuss.gradle.org/t/how-do-you-attach-a-debugger-to-gradle-so-that-i-can-debug-it-running-a-task/7526/5 it seems that it can be possible to debug if you set jvm args in gradle.properties file.

sutaakar avatar Feb 10 '17 12:02 sutaakar

I've ben able to reach this code: https://github.com/codehaus-cargo/cargo/blob/master/extensions/ant/tasks/src/main/java/org/codehaus/cargo/ant/CargoTask.java#L772

As you can see on image the port is 9990, instead of 9992!

imagen

Nevertheless, getContainer() method returns a Container with this properties:

imagen

I've laso just realized 9992 value is set on cargo.servlet.port instead of on cargo.jboss.management-http.port

imagen

jeusdi avatar Feb 14 '17 10:02 jeusdi

Can you please check property cargo.jboss.management-http.port in configuration properties? cargo.servlet.port property is used as port value for http communication - equals to system property jboss.http.port. cargo.jboss.management-http.port is port value for http management communication - the one we need for remote deployment.

sutaakar avatar Feb 14 '17 11:02 sutaakar

Definitely, it seems cargo gradle plugin sends to cargo ant wrong values:

When addConfiguredProperty is reached, is receives this Propertys:

cargo.servlet.port = 9992

imagen

In fact, cargo.jboss.management-http.port is not added.

jeusdi avatar Feb 14 '17 11:02 jeusdi

@bmuschko I think the bug is around https://github.com/bmuschko/gradle-cargo-plugin/blob/master/src/main/groovy/com/bmuschko/gradle/cargo/tasks/remote/RemoteCargoContainerTask.groovy#L85

And it seems not reached:

https://github.com/bmuschko/gradle-cargo-plugin/blob/7fe72e9c03e0c37b5777196c87427363b6ef1191/src/main/groovy/com/bmuschko/gradle/cargo/tasks/AbstractCargoContainerTask.groovy#L102

Could you take a look, please?

jeusdi avatar Feb 14 '17 11:02 jeusdi

@bmuschko , could I help out with anything more?

jeusdi avatar Feb 16 '17 08:02 jeusdi

@bmuschko could you give us some feedback. Do you thing it's an issue related with gradle plugin?

jeusdi avatar Feb 17 '17 07:02 jeusdi

@jeusdi I might be able to have a look within the next 2 weeks but I can't promise it.

bmuschko avatar Feb 17 '17 22:02 bmuschko

@bmuschko Please, sorry for asking you for it again. Nevertheless, I'm still sticking in solving that.

Nevertheless, it would be really a great work around if it was ready...

Have you been able to take a look?

jeusdi avatar Mar 07 '17 11:03 jeusdi