Bug 780146 (SOA-2519)

Summary: "host paramter is null' reported when attempting WS proxying
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: John Doyle <jdoyle>
Component: Documentation, JBossESBAssignee: David Le Sage <dlesage>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: 5.1.0.ER3   
Target Milestone: ---   
Target Release: 5.1.0 GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2519
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
5.0.1.ER3, RHEL 5, JBDS Beta 1
Last Closed: 2011-03-04 03:42:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
SOA-2519-jira.zip none

Description John Doyle 2010-10-29 16:10:07 UTC
project_key: SOA

I'm attempting to proxy a Teiid SOAP service hosted in the same SOA install.  When deploying the ESB project I get the following error when the ESB tries to load the WSDL.  I've debugged it partially are it appears that the host never gets into the HTTP Method even though the correct URL is supplied.  This should be reproducible w/o my SOAP service.

Caused by: org.jboss.soa.esb.ConfigurationException: java.lang.IllegalArgumentException: host parameter is null
	at org.jboss.soa.esb.actions.soap.proxy.SOAPProxy.<init>(SOAPProxy.java:193)
	... 66 more
Caused by: java.lang.IllegalArgumentException: host parameter is null
	at org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:205)
	at org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:154)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionWithReference.<init>(MultiThreadedHttpConnectionManager.java:1105)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ConnectionPool.createConnection(MultiThreadedHttpConnectionManager.java:741)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:469)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:394)
	at org.jboss.soa.esb.http.ESBMultiThreadedHttpConnectionManager.getConnectionWithTimeout(ESBMultiThreadedHttpConnectionManager.java:74)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:152)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
	at org.jboss.soa.esb.actions.soap.RemoteWsdlLoader.load(RemoteWsdlLoader.java:90)
	at org.jboss.soa.esb.actions.soap.AbstractWsdlContractPublisher.getWsdl(AbstractWsdlContractPublisher.java:199)
	at org.jboss.soa.esb.actions.soap.proxy.SOAPProxyWsdlLoader$Puller.pull(SOAPProxyWsdlLoader.java:521)
	at org.jboss.soa.esb.actions.soap.proxy.SOAPProxyWsdlLoader.load(SOAPProxyWsdlLoader.java:157)
	at org.jboss.soa.esb.actions.soap.proxy.SOAPProxy.<init>(SOAPProxy.java:188)
	... 66 more
12:01:57,726 INFO  [EsbDeployment] Destroying 'ProductProxy.esb'

Comment 1 John Doyle 2010-10-29 16:11:17 UTC
Here's the project.

Comment 2 John Doyle 2010-10-29 16:11:17 UTC
Attachment: Added: SOA-2519-jira.zip


Comment 3 Kevin Conner 2010-11-01 16:32:34 UTC
You removed HttpProtocol from the list of configurators.

configurators=AuthBASIC, HttpProtocol

Is this not mentioned in the documentation?

Comment 4 John Doyle 2010-11-02 15:32:06 UTC
Here is the doc I've been referring to, and if I'm reading it correctly, that's an optional property.

http://documentation-stage.bne.redhat.com/docs/en-US/JBoss_Enterprise_SOA_Platform/5/html/ESB_Programmers_Guide/chap-SOA_ESB_Programmers_Guide-Out-of-the-box_Actions.html#sect-SOAP-SOAPPROXY

Is my understanding incorrect?

For the service I have configured, I need to send Basic credentials, and it looks like I was using the clientCredentialRequired property incorrectly.  I've change that value to be false, but it doesn't seem to matter.

Comment 5 Kevin Conner 2010-11-02 15:48:21 UTC
The exception you are seeing is caused by the fact you have not configured the HttpProtocol.

While this property is optional, defaulting to HttpProtocol, you must include that configurator (or an alternative) if you specify it.

The documentation does include both but is not as clear as it should be.

Comment 6 John Doyle 2010-11-05 19:51:51 UTC
I just spoke to Ken Johnson following the defect review and we discussed what the doc might say.  One issue that it's struggled with in this case is how to set up the HTTP config for different scenarios.  All of our examples seem to point to a SSL Socket implementation sample.  I think we should document the SSL config, as well as a plain HTTP config and a plain HTTP config with BASIC Auth.  

Comment 7 Kevin Conner 2010-11-06 08:19:40 UTC
The documentation that appears to be missing is the descriptions of each configurator and what they do, including whether they are required or optional.

If we have this in place then the configuration should be clearer.

Comment 8 Anne-Louise Tangring 2010-11-09 15:54:52 UTC
Candidate for SOA 5.1.0. Needs clearer documentation.

Comment 9 Anne-Louise Tangring 2010-12-06 16:52:08 UTC
Blocker for SOA 5.1.0

Comment 11 Dana Mison 2011-01-05 00:14:45 UTC
Writer: Added: dlesage


Comment 12 Kevin Conner 2011-03-03 13:55:17 UTC
Link: Added: This issue depends JBESB-3575


Comment 13 Kevin Conner 2011-03-03 13:57:54 UTC
Updated in ESB 4.9CP branch

Comment 14 David Le Sage 2011-03-04 03:41:51 UTC
Section has been merged from upstream into product document.

Comment 15 David Le Sage 2011-03-04 03:41:51 UTC
Release Notes Docs Status: Added: Not Required