CFMX7 and SOAP errors
Hi all, I'm trying to connect to a SOAP webservice through either or createObject() with no luck whatsoever. 1. The webservice is hosted on some other server through php, I should be able to connect to it using my username and password and run functions on it. 2. The webservice works if I try it with php, or using: http://www.bindingpoint.com/quicktryv2.aspx 3. Other webservices I can get to work on my server. It's just this particular one with this server. I tried to translate the provided php code into CF but keep getting the same error. I even tried the most basic one-line: myObj = createObject( 'webservice', 'http://url/To/Webservice.php?wsdl' ); The error I get goes like this and is the same for both cfinvoke and createObject: --- coldfusion.jsp.CompilationFailedException: Errors reported by Java compiler: Found 2 syntax errors in "C:/CFusionMX7/stubs/WS-1930889944/com/prenames/webservices/soap/SearchResults.java": 10. public class SearchResults extends java.lang.Object[] implements java.io.Serializable { <> *** Syntax: { expected instead of this token 10. public class SearchResults extends java.lang.Object[] implements java.io.Serializable { <---> *** Syntax: misplaced construct(s) .. --- I'm guessing there is some kind of incompatibility with the Java version of the provided webservice and that of CF. But that's just guessing... I have tried different approaches (using with , with passing in the username and password in different ways, using array's using plain text, all to no avail. It just keeps erroring out on line 1. the one with either the createObject or the on it.) Any Ideas? Thanks guys, Mingo. My specs: Windows 2003, IIS, CFMX7 (7.0.2, Apache Axis 1.2.1) ~| Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting, up-to-date ColdFusion information by your peers, delivered to your door four times a year. http://www.fusionauthority.com/quarterly Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:260316 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Soap errors
Ok after some great help here, and some futher great help from tom jordhal i got this working. Basically when i got this error CF was telling me that it couldn't create the objects needed for my webservices call and that i needed to use actual java objects. Tom showed me how get these objects without coding them from scratch: In order to do this, you will have to have the output of WSDL2Java compiled and in the ColdFusion classpath (aka in the lib directory). Do this, clean out the CFusionMX7/stubs directory. Restart your CF server. Do a CreateObject on the WSDL, this will run WSDL2Java and compile all the resulting code. Then, copy the directory of class files (i.e. the "com" directory) in to CFusionMX7/lib. Restart CF. Once you've done the above you can now create and use the "expected" java objects. for my code it was something like so: // Get a handle to the class RecType = CreateObject("java", " com.netsuite.webservices.platform.core_1_2.types.RecordType"); // Call the static method of the class that returns an instance of the enumeration recordType = RecType.fromString("inventoryItem"); // Create the argument Jaav type recordRef = CreateObject("java", "com.netsuite.webservices.platform.core_1_2.RecordRef"); // Call the constructor with the three arguments recordRef.init("name", "527", recordType); // call the operation result = ws.get(recordRef); So there you go (for those who care). Thanks all! jonese On 3/22/06, jonese <[EMAIL PROTECTED]> wrote: > Anyone understand this error?? > > Error converting CFML arguments to Java classes for web service invocation. > Unable to create web service argument class > com.netsuite.webservices.platform.core_1_2.BaseRef. Error: > java.lang.InstantiationException. Often this is because the web > service defines an abstract complexType as an input to an operation. > You must create an actual instance of this type in Java. > > jonese > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236590 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
higher up in my code i create the object: ws = CreateObject('webservice','NetSuite'); jonese On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> wrote: > On Thursday 23 March 2006 16:51, jonese wrote: > > q_getList = ws.get(RecordRef); > > Where'd 'ws' come from ? > Is it correctly configured in the CF admin, or are you making it on the fly ? > > -- > > Tom Chiverton > Advanced ColdFusion Programmer > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236064 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
On Thursday 23 March 2006 16:51, jonese wrote: > q_getList = ws.get(RecordRef); Where'd 'ws' come from ? Is it correctly configured in the CF admin, or are you making it on the fly ? -- Tom Chiverton Advanced ColdFusion Programmer ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236062 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
OK i did just what Dave says below and now I'm getting the following error: Could not perform web service invocation "get". Here is the fault returned when invoking the web service operation: java.lang.IllegalArgumentException: argument type mismatch I can send the files I'm using if it will help but basically i have two CFC's one called recordRef which Extends BaseRef and inside i have the cfproperty tags with types set to string. and then i just do: RecordRef = createObject('component','recordRef'); RecordRef.name = ''; RecordRef.type = 'inventoryItem'; RecordRef.internalId = '527'; q_getList = ws.get(RecordRef); thoughts now? jonese On 3/23/06, Dave Watts <[EMAIL PROTECTED]> wrote: > > The recordRef type descends from BaseRef and is defined in core.xsd. > > (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) > > > > Field Name: internalId > > XML Schema Type: xsd:string (attribute) > > Req: y > > Notes: > > > > Field Name: type > > XML Schema Type: xsd:string (attribute) > > Req: N > > Notes: Reference to a value in a Web services only system > > list. If the type is known by context, the type is NOT required. > > > > Field Name: name > > XML Schema Type: xsd:string > > Req: N > > Notes: This is a read-only field that is populated by > > NetSuite when it's a part of a get or search response. If > > this field is populated during a write operation, it will be ignored. > > > > So how would you build this in CF? > > You'd create a CFC that uses the CFPROPERTY tag to document these fields. > You'd then create an instance of this CFC and pass that to your web service, > instead of just passing a structure. > > Dave Watts, CTO, Fig Leaf Software > http://www.figleaf.com/ > > Fig Leaf Software provides the highest caliber vendor-authorized > instruction at our training centers in Washington DC, Atlanta, > Chicago, Baltimore, Northern Virginia, or on-site at your location. > Visit http://training.figleaf.com/ for more information! > > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236061 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
YEa i tried this and no dice On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > and you've tried RecordRef.internalId = javacast("string",'527'); as per my > previous reply? > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236059 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
RE: Soap errors
> The recordRef type descends from BaseRef and is defined in core.xsd. > (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) > > Field Name: internalId > XML Schema Type: xsd:string (attribute) > Req: y > Notes: > > Field Name: type > XML Schema Type: xsd:string (attribute) > Req: N > Notes: Reference to a value in a Web services only system > list. If the type is known by context, the type is NOT required. > > Field Name: name > XML Schema Type: xsd:string > Req: N > Notes: This is a read-only field that is populated by > NetSuite when it's a part of a get or search response. If > this field is populated during a write operation, it will be ignored. > > So how would you build this in CF? You'd create a CFC that uses the CFPROPERTY tag to document these fields. You'd then create an instance of this CFC and pass that to your web service, instead of just passing a structure. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236053 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
and you've tried RecordRef.internalId = javacast("string",'527'); as per my previous reply? On 3/23/06, jonese <[EMAIL PROTECTED]> wrote: > > Yea i tried that and got the same error about "the web service defines > an abstract complexType as an input to an operation" > > thanks for trying though, i seem to be in an area that people on this > list have'nt traveled before... > > jonese > > On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > > have you tried adding name and type to the RecordRef structure? I know > they > > are optional in terms of content, but I wonder if they need to > exist? Only > > a guess I'm afraid and I expect you have tried that already. > > > > On 3/23/06, jonese <[EMAIL PROTECTED]> wrote: > > > > > > Ok so i'm calling a get method via webservices and in the docs it > > > tells me i have to pass in a RecordRef XSD type. So i look at the docs > > > to find out what a RecordRef is and i'm given this: > > > > > > The RecordRef type is used to reference an existing record in NetSuite > > > in get operations. > > > Typically, a RecordRef references one of the following: > > > * Another business object such as a customer or sales order > > > * An entry in a user defined list such as the category list > for > > > contacts or sales tax items > > > > > > The recordRef type descends from BaseRef and is defined in core.xsd. > > > (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) > > > > > > Field Name: internalId > > > XML Schema Type: xsd:string (attribute) > > > Req: y > > > Notes: > > > > > > Field Name: type > > > XML Schema Type: xsd:string (attribute) > > > Req: N > > > Notes: Reference to a value in a Web services only system list. If the > > > type is known by context, the type is NOT required. > > > > > > Field Name: name > > > XML Schema Type: xsd:string > > > Req: N > > > Notes: This is a read-only field that is populated by NetSuite when > > > it's a part of a get or search response. If this field is populated > > > during a write operation, it will be ignored. > > > > > > So how would you build this in CF? i thought it was just a structure > > > so i did the following: > > > > > > > > > passport = structNew(); > > > passport.email = "[EMAIL PROTECTED]"; > > > passport.password = "pass"; > > > passport.account = 318786; > > > > > > ws = CreateObject('webservice','NetSuite'); > > > ws.setMaintainSession(true); > > > ws.login(passport); > > > RecordRef.internalId = '527'; > > > q_get = ws.get(RecordRef); > > > > > > > > > Thoughts? > > > > > > WSDL is here if it helps: > > > https://webservices.netsuite.com/wsdl/v1_2_1/netsuite.wsdl > > > > > > jonese > > > > > > > > > On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > > > > I had a similar issue calling a java method. I had to wrap the > > > javacast() > > > > function around one of the arguments passed. > > > > > > > > Because the java class was local I could use cfdump on the object to > > > give me > > > > some clues - not so easy with a web service, but if you don't have > good > > > docs > > > > you can always take a close look at the wsdl XML. > > > > > > > > On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> > wrote: > > > > > > > > > > On Wednesday 22 March 2006 21:58, jonese wrote: > > > > > > Error converting CFML arguments to Java classes for web service > > > > > > > > > > I'm guessing your inputs to the web service are of the wrong type. > > > > > > > > > > -- > > > > > > > > > > Tom Chiverton > > > > > Advanced ColdFusion Programmer > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236047 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
Yea i tried that and got the same error about "the web service defines an abstract complexType as an input to an operation" thanks for trying though, i seem to be in an area that people on this list have'nt traveled before... jonese On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > have you tried adding name and type to the RecordRef structure? I know they > are optional in terms of content, but I wonder if they need to exist? Only > a guess I'm afraid and I expect you have tried that already. > > On 3/23/06, jonese <[EMAIL PROTECTED]> wrote: > > > > Ok so i'm calling a get method via webservices and in the docs it > > tells me i have to pass in a RecordRef XSD type. So i look at the docs > > to find out what a RecordRef is and i'm given this: > > > > The RecordRef type is used to reference an existing record in NetSuite > > in get operations. > > Typically, a RecordRef references one of the following: > > * Another business object such as a customer or sales order > > * An entry in a user defined list such as the category list for > > contacts or sales tax items > > > > The recordRef type descends from BaseRef and is defined in core.xsd. > > (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) > > > > Field Name: internalId > > XML Schema Type: xsd:string (attribute) > > Req: y > > Notes: > > > > Field Name: type > > XML Schema Type: xsd:string (attribute) > > Req: N > > Notes: Reference to a value in a Web services only system list. If the > > type is known by context, the type is NOT required. > > > > Field Name: name > > XML Schema Type: xsd:string > > Req: N > > Notes: This is a read-only field that is populated by NetSuite when > > it's a part of a get or search response. If this field is populated > > during a write operation, it will be ignored. > > > > So how would you build this in CF? i thought it was just a structure > > so i did the following: > > > > > > passport = structNew(); > > passport.email = "[EMAIL PROTECTED]"; > > passport.password = "pass"; > > passport.account = 318786; > > > > ws = CreateObject('webservice','NetSuite'); > > ws.setMaintainSession(true); > > ws.login(passport); > > RecordRef.internalId = '527'; > > q_get = ws.get(RecordRef); > > > > > > Thoughts? > > > > WSDL is here if it helps: > > https://webservices.netsuite.com/wsdl/v1_2_1/netsuite.wsdl > > > > jonese > > > > > > On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > > > I had a similar issue calling a java method. I had to wrap the > > javacast() > > > function around one of the arguments passed. > > > > > > Because the java class was local I could use cfdump on the object to > > give me > > > some clues - not so easy with a web service, but if you don't have good > > docs > > > you can always take a close look at the wsdl XML. > > > > > > On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> wrote: > > > > > > > > On Wednesday 22 March 2006 21:58, jonese wrote: > > > > > Error converting CFML arguments to Java classes for web service > > > > > > > > I'm guessing your inputs to the web service are of the wrong type. > > > > > > > > -- > > > > > > > > Tom Chiverton > > > > Advanced ColdFusion Programmer > > > > > > > > > > > > > > > > > > > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236043 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
have you tried adding name and type to the RecordRef structure? I know they are optional in terms of content, but I wonder if they need to exist? Only a guess I'm afraid and I expect you have tried that already. On 3/23/06, jonese <[EMAIL PROTECTED]> wrote: > > Ok so i'm calling a get method via webservices and in the docs it > tells me i have to pass in a RecordRef XSD type. So i look at the docs > to find out what a RecordRef is and i'm given this: > > The RecordRef type is used to reference an existing record in NetSuite > in get operations. > Typically, a RecordRef references one of the following: > * Another business object such as a customer or sales order > * An entry in a user defined list such as the category list for > contacts or sales tax items > > The recordRef type descends from BaseRef and is defined in core.xsd. > (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) > > Field Name: internalId > XML Schema Type: xsd:string (attribute) > Req: y > Notes: > > Field Name: type > XML Schema Type: xsd:string (attribute) > Req: N > Notes: Reference to a value in a Web services only system list. If the > type is known by context, the type is NOT required. > > Field Name: name > XML Schema Type: xsd:string > Req: N > Notes: This is a read-only field that is populated by NetSuite when > it's a part of a get or search response. If this field is populated > during a write operation, it will be ignored. > > So how would you build this in CF? i thought it was just a structure > so i did the following: > > > passport = structNew(); > passport.email = "[EMAIL PROTECTED]"; > passport.password = "pass"; > passport.account = 318786; > > ws = CreateObject('webservice','NetSuite'); > ws.setMaintainSession(true); > ws.login(passport); > RecordRef.internalId = '527'; > q_get = ws.get(RecordRef); > > > Thoughts? > > WSDL is here if it helps: > https://webservices.netsuite.com/wsdl/v1_2_1/netsuite.wsdl > > jonese > > > On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > > I had a similar issue calling a java method. I had to wrap the > javacast() > > function around one of the arguments passed. > > > > Because the java class was local I could use cfdump on the object to > give me > > some clues - not so easy with a web service, but if you don't have good > docs > > you can always take a close look at the wsdl XML. > > > > On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> wrote: > > > > > > On Wednesday 22 March 2006 21:58, jonese wrote: > > > > Error converting CFML arguments to Java classes for web service > > > > > > I'm guessing your inputs to the web service are of the wrong type. > > > > > > -- > > > > > > Tom Chiverton > > > Advanced ColdFusion Programmer > > > > > > > > > > > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236037 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
Ok so i'm calling a get method via webservices and in the docs it tells me i have to pass in a RecordRef XSD type. So i look at the docs to find out what a RecordRef is and i'm given this: The RecordRef type is used to reference an existing record in NetSuite in get operations. Typically, a RecordRef references one of the following: * Another business object such as a customer or sales order * An entry in a user defined list such as the category list for contacts or sales tax items The recordRef type descends from BaseRef and is defined in core.xsd. (https://webservices.netsuite.com/xsd/platform/v1_2_1/core.xsd) Field Name: internalId XML Schema Type: xsd:string (attribute) Req: y Notes: Field Name: type XML Schema Type: xsd:string (attribute) Req: N Notes: Reference to a value in a Web services only system list. If the type is known by context, the type is NOT required. Field Name: name XML Schema Type: xsd:string Req: N Notes: This is a read-only field that is populated by NetSuite when it's a part of a get or search response. If this field is populated during a write operation, it will be ignored. So how would you build this in CF? i thought it was just a structure so i did the following: passport = structNew(); passport.email = "[EMAIL PROTECTED]"; passport.password = "pass"; passport.account = 318786; ws = CreateObject('webservice','NetSuite'); ws.setMaintainSession(true); ws.login(passport); RecordRef.internalId = '527'; q_get = ws.get(RecordRef); Thoughts? WSDL is here if it helps: https://webservices.netsuite.com/wsdl/v1_2_1/netsuite.wsdl jonese On 3/23/06, Michael Traher <[EMAIL PROTECTED]> wrote: > I had a similar issue calling a java method. I had to wrap the javacast() > function around one of the arguments passed. > > Because the java class was local I could use cfdump on the object to give me > some clues - not so easy with a web service, but if you don't have good docs > you can always take a close look at the wsdl XML. > > On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> wrote: > > > > On Wednesday 22 March 2006 21:58, jonese wrote: > > > Error converting CFML arguments to Java classes for web service > > > > I'm guessing your inputs to the web service are of the wrong type. > > > > -- > > > > Tom Chiverton > > Advanced ColdFusion Programmer > > > > > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236034 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
I had a similar issue calling a java method. I had to wrap the javacast() function around one of the arguments passed. Because the java class was local I could use cfdump on the object to give me some clues - not so easy with a web service, but if you don't have good docs you can always take a close look at the wsdl XML. On 3/23/06, Thomas Chiverton <[EMAIL PROTECTED]> wrote: > > On Wednesday 22 March 2006 21:58, jonese wrote: > > Error converting CFML arguments to Java classes for web service > > I'm guessing your inputs to the web service are of the wrong type. > > -- > > Tom Chiverton > Advanced ColdFusion Programmer > > ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236020 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Re: Soap errors
On Wednesday 22 March 2006 21:58, jonese wrote: > Error converting CFML arguments to Java classes for web service I'm guessing your inputs to the web service are of the wrong type. -- Tom Chiverton Advanced ColdFusion Programmer ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236019 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54
Soap errors
Anyone understand this error?? Error converting CFML arguments to Java classes for web service invocation. Unable to create web service argument class com.netsuite.webservices.platform.core_1_2.BaseRef. Error: java.lang.InstantiationException. Often this is because the web service defines an abstract complexType as an input to an operation. You must create an actual instance of this type in Java. jonese ~| Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236001 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54