Another update: If I remove expandpath() form the wsdlfile argument I get a 
runtime error which seems to come from:

>From cfCOMPONENT.java:

        // if specified, WSDLFILE attribute must point to a real document
        if ( containsAttribute( WSDLFILE ) ) {
            String wsdlFileVal = getDynamic(session, 
WSDLFILE).toString().trim().toUpperCase();
            File f = new File(wsdlFileVal);
            if (!f.exists() || !f.isFile())
                f = new File(session.getPresentDirectory(), wsdlFileVal);

            if (!f.exists() || !f.isFile()){
                throw 
newRunTimeException(catchDataFactory.invalidTagAttributeException(this,   
"WSDLFILE attribute contains invalid value. Cannot locate: " + 
wsdlFileVal));
            }

            // Update the value so it's valid when we read it later
            metaData.setData(WSDLFILE, new 
cfStringData(f.getAbsolutePath()));
        }

<http://openbd.org/manual/>*CFML Runtime Error*
Need some help? Visit our manual http://openbd.org/manual/ 
<http://openbd.org/manual/>
*The tag produced the following error: WSDLFILE attribute contains invalid 
value. Cannot locate: /HOME/MOSS/CP/API.XML'*
Request /api.cfc
File Trace /home/moss/cp/api.cfc

Type Template
Tag Context CFCOMPONENT <http://openbd.org/manual/?/tag/CFCOMPONENT> 
(/home/moss/cp/api.cfc, 
Line=1, Column=1)
Source 

1: <cfcomponent wsdlfile="/home/moss/cp/api.xml'">
2: 
3:   <cffunction name="read_wsdl" returntype="string" access="remote">
4:     <cfset retstr = "">
5:     <cffile action="read" file="#expandpath('/api.xml')#" variable="retstr">

^ Snippet from underlying CFML source
locals 
struct
arguments 
struct [empty]
Expanded Debug Details - Click to expand the detailed variables
application <http://localhost:8080/api.cfc?wsdl#> 
cffile <http://localhost:8080/api.cfc?wsdl#> 
cfthread <http://localhost:8080/api.cfc?wsdl#> 
cgi <http://localhost:8080/api.cfc?wsdl#> 
client <http://localhost:8080/api.cfc?wsdl#> 
cookie <http://localhost:8080/api.cfc?wsdl#> 
form <http://localhost:8080/api.cfc?wsdl#> 
request <http://localhost:8080/api.cfc?wsdl#> 
server <http://localhost:8080/api.cfc?wsdl#> 
session <http://localhost:8080/api.cfc?wsdl#> 
url <http://localhost:8080/api.cfc?wsdl#> 
3.1 @ 10:47:17.152 Monday, 11 July 2016

This error has been logged to 
bderror-2016-07-11-104717_670172659573269411.html. Please contact the 
Administrator

On Monday, July 11, 2016 at 10:05:15 AM UTC-6, John Moss wrote:
>
> I'm thinking this feature of OpenBD does not work.
> I have tried it on both the "Nightly Build" and "Stable Release"
> Either it is broken or I simply don't know how to implement it.
>
> So here's a simple test:
>
> <cfcomponent>
>
>     <cffunction name="read_wsdl" returntype="string" access="remote">
>         <cfset retstr = "">
>         <cffile action="read" file="#expandpath('/api.wsdl')#" 
> variable="retstr">
>         <cfreturn retstr>
>     </cffunction>
>
> </cfcomponent>
>
> If I save this as api.cfc and bring it up in a browser as: 
> localhost:8080/api.cfc?wsdl
>
> I get this:
>
> <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap"; 
> xmlns:impl="http://api.cfc"; xmlns:intf="http://api.cfc"; xmlns:soapenc="
> http://schemas.xmlsoap.org/soap/encoding/"xmlns:wsdl=";
> http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="
> http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="
> http://www.w3.org/2001/XMLSchema"; targetNamespace="http://api.cfc";>
> <!-- WSDL created by 3.1 -->
> <wsdl:message name="read_wsdlRequest"></wsdl:message>
> <wsdl:message name="read_wsdlResponse">
> <wsdl:part name="read_wsdlReturn" type="xsd:string"/>
> </wsdl:message>
> <wsdl:portType name="api">
> <wsdl:operation name="read_wsdl">
> <wsdl:input message="impl:read_wsdlRequest" name="read_wsdlRequest"/>
> <wsdl:output message="impl:read_wsdlResponse" name="read_wsdlResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="api.cfcSoapBinding" type="impl:api">
> <wsdlsoap:binding style="rpc" transport="
> http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="read_wsdl">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="read_wsdlRequest">
> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
> namespace="http://na_svr"; use="encoded"/>
> </wsdl:input>
> <wsdl:output name="read_wsdlResponse">
> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
> namespace="http://api.cfc"; use="encoded"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="apiService">
> <wsdl:port binding="impl:api.cfcSoapBinding" name="api.cfc">
> <wsdlsoap:address location="http://localhost:8080/api.cfc"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
>  Then if I save the wsdl with: wget localhost:8080/api.cfc?wsdl and rename 
> the output to api.wsdl I can then call: 
> http://localhost:8080/api.cfc?method=get_wsdl it returns the wsdl as a 
> string.
> However if I then change the api.cfc file to:
>
> <cfcomponent wsdlfile="#expandpath('/api.wsdl')#">
>
>     <cffunction name="read_wsdl" returntype="string" access="remote">
>         <cfset retstr = "">
>         <cffile action="read" file="#expandpath('/api.wsdl')#" 
> variable="retstr">
>         <cfreturn retstr>
>     </cffunction>
>
> </cfcomponent>
>
> The result is:
>
> <http://openbd.org/manual/>*OpenBD Internal Server Error*
> Need some help? Visit our manual http://openbd.org/manual/ 
> <http://openbd.org/manual/>
> *The page you were executing caused an internal server error*
> Request /api.cfc
> File Trace 
>
> Type Internal
> Tag Context 
> Stack Trace 
>
> java.lang.NullPointerException
>       at com.naryx.tagfusion.expression.function.expandPath.expand(Unknown 
> Source)
>       at com.naryx.tagfusion.expression.function.expandPath.execute(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.parser.CFFunctionExpression.Eval(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.parser.runTime.runExpression(Unknown Source)
>       at com.naryx.tagfusion.cfm.tag.cfTag.getEvaluatedConstant(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.tag.cfTag.getMetaData(Unknown Source)
>       at com.naryx.tagfusion.cfm.tag.cfCOMPONENT.tagLoadingComplete(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.tag.cfTag.normalise(Unknown Source)
>       at com.naryx.tagfusion.cfm.tag.cfTag.normalise(Unknown Source)
>       at com.naryx.tagfusion.cfm.file.cfFile.readFile(Unknown Source)
>       at com.naryx.tagfusion.cfm.file.cfFile.(Unknown Source)
>       at com.naryx.tagfusion.cfm.file.cfmlFileCache.loadFile(Unknown Source)
>       at com.naryx.tagfusion.cfm.file.cfmlFileCache._getCfmlFile(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.file.cfmlFileCache.getCfmlFile(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.engine.cfSession.getFile(Unknown Source)
>       at com.naryx.tagfusion.cfm.engine.cfSession.getUriFile(Unknown Source)
>       at com.naryx.tagfusion.cfm.engine.cfSession.getRequestFile(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.xml.ws.cfcHandler.setupService(Unknown 
> Source)
>       at com.naryx.tagfusion.cfm.xml.ws.cfcHandler.generateWSDL(Unknown 
> Source)
>       at 
> org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:33)
>       at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>       at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:104)
>       at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:454)
>       at 
> org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.java:68)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.axis.transport.http.AxisServlet.processQuery(AxisServlet.java:1233)
>       at 
> org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:249)
>       at com.naryx.tagfusion.cfm.cfcServlet.doGet(Unknown Source)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>       at 
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:336)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>       at 
> com.newatlanta.filters.SearchEngineFriendlyURLFilter.doFilter(Unknown Source)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>       at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
>
>
> Expanded Debug Details - Click to expand the detailed variables
> cffile <http://localhost:8080/api.cfc?wsdl#> 
> cfthread <http://localhost:8080/api.cfc?wsdl#> 
> cgi <http://localhost:8080/api.cfc?wsdl#> 
> client <http://localhost:8080/api.cfc?wsdl#> 
> cookie <http://localhost:8080/api.cfc?wsdl#> 
> form <http://localhost:8080/api.cfc?wsdl#> 
> request <http://localhost:8080/api.cfc?wsdl#> 
> server <http://localhost:8080/api.cfc?wsdl#> 
> session <http://localhost:8080/api.cfc?wsdl#> 
> url <http://localhost:8080/api.cfc?wsdl#> 
> 3.1 @ 10:00:46.453 Monday, 11 July 2016
>
> This error has been logged to 
> bderror-2016-07-11-100046_3496000005972833432.html. Please contact the 
> Administrator
>
>
>
> On Friday, July 8, 2016 at 12:50:08 PM UTC-6, John Moss wrote:
>>
>> I'm having a real struggle when I try to put a cfc on a host behind the 
>> google load balancer:
>>
>> The REST invokation of the methods in the file work just fine, but the 
>> SOAP does not work.
>> I can add the service reference to the api in Visual Studio and it sees 
>> all of the methods, so it successfully reads the WSDL file I think.
>> When I make any call to any of the methods it does not work though.
>> Looking at the wsdl generated, it looks like the path to the servers 
>> behind the load balancer needs to be modified.
>> The https is http and the port might need to be changed to 8080 so ok, I 
>> didn't want to have to do this but I thought it would be relatively simple 
>> to "wget" the wsdl file and modify it, then add it to the <cfcomponent> 
>> like so: <cfcomponent name="myapi" 
>> wsdlfile="#expandpath('/wsdl')#/myapi.wsdl>
>>
>> It doesn't seem to ever be able to find the file I specify--I even added 
>> a mapping "/wsdl" to see if that made a difference.
>> What I get is: *The tag produced the following error: WSDLFILE attribute 
>> contains invalid value. Cannot locate: /USR/LOCAL/SITE1/API/24/MYAPI.WSDL*
>>
>> The location where it says it cannot locate the file is the exact 
>> location of the file except it is in upper-case where there are no 
>> upper-case characters in the path.
>>
>> I have tried various ways to do this to no avail.
>>
>> Does anyone out there have experience with this they could share?
>>
>> Thanks!
>> -John Moss
>>
>

-- 
-- 
online documentation: http://openbd.org/manual/
 http://groups.google.com/group/openbd?hl=en

--- 
You received this message because you are subscribed to the Google Groups "Open 
BlueDragon" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to