Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Can't get includeField datasource to work

    SmartClient Version: v10.1p_2016-12-05/Pro Development Only (built 2016-12-05)
    Chrome on CentOS 7 linux
    MySQL database

    I'm using VisualBuilder running the builtin server to try and create a datasource that includes a field from another table. When I first create the datasource, it sort of works except that the foreign key field and the included field appear empty when I bind the datasource to a listgrid. If I restart the server and reload the browser it fails with:

    Transport error - HTTP code: 0 for URL: http://localhost:8080/tools/visualBu...Operations.jsp

    The datasource that generates the problem

    <DataSource ID="supervisorTree" serverType="sql" dataSourceVersion="1" dbName="personnel" tableName="people" quoteTableName="false" tableCode="12a032ce9179c32a6c7ab397b9d871fa" allowAdvancedCriteria="false" generatedBy="v10.1p_2016-12-05/Pro Deployment 2016-12-05">
    <fields>
    <field name="id" type="integer" title="5-digit unique ID number" primaryKey="true" foreignKey="peopleSupervision.id_People" columnCode="b80bb7740288fda1f201890375a60c8f">
    <validators>
    <Validator>
    <type>isInteger</type>
    <stopIfFalse>true</stopIfFalse>
    <typeCastValidator>true</typeCastValidator>
    <defaultErrorMessage>Must be a whole number.</defaultErrorMessage>
    <resultingValue></resultingValue>
    </Validator>
    </validators>
    </field>
    <field name="supervisorID" title="Supervisor ID" includeFrom="peopleSupervision.id_Supervisors">
    </field>
    </fields>
    <dataURL></dataURL>
    <recordXPath></recordXPath>
    </DataSource>

    The parent datasources both seem to work correctly.

    Is this a bug or am I missing something?

    The server log shows:
    === 2016-12-06 15:24:10,277 [ec-9] INFO RequestContext - URL: '/tools/visualBuilder/vbOperations.jsp', User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36': Safari with Accept-Encoding header
    === 2016-12-06 15:24:10,278 [ec-9] WARN RPCManager - client/server version mismatch. Client is version: $[versionNumber], server is version: v10.1p_2016-12-05 - mixing different client/server versions is generally not supported. If you've installed a more recent client version, try clearing the browser cache and reloading the page.
    === 2016-12-06 15:24:10,280 [ec-9] DEBUG XML - Parsed XML from (in memory stream): 2ms
    === 2016-12-06 15:24:10,281 [ec-9] DEBUG RPCManager - Processing 1 requests.
    === 2016-12-06 15:24:10,283 [ec-9] DEBUG XML - Parsed XML from /tank0/SmartClient10/SmartClient_v101p_2016-12-05_Pro/smartclientSDK/tools/selenium/supervisorTree.ds.xml: 1ms
    === 2016-12-06 15:24:10,307 [ec-9] DEBUG XML - Parsed XML from /tank0/SmartClient10/SmartClient_v101p_2016-12-05_Pro/smartclientSDK/tools/selenium/peopleSupervision.ds.xml: 1ms
    === 2016-12-06 15:24:10,311 [ec-9] WARN Validation - attribute 'sequenceMode' is not declared in Component Schema '{DataSource.ds.xml}' and strict mode is enabled. See 'Strict Mode' overview in the documentation for details.DataSource /DataSource[@ID=peopleSupervision]
    === 2016-12-06 15:24:10,314 [ec-9] DEBUG SQLDataSource - DataSource 957 acquired SQLDriver instance 281633763 during initialization
    === 2016-12-06 15:24:10,317 [ec-9] DEBUG SQLDataSource - DataSource 954 acquired SQLDriver instance 1335992981 during initialization
    === 2016-12-06 15:24:10,317 [ec-9] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    appID:"builtinApplication",
    operation:"supervisorTree_loadSchema",
    values:{
    },
    criteria:{
    }
    }
    === 2016-12-06 15:24:10,317 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2016-12-06 15:24:10,317 [ec-9] DEBUG DeclarativeSecurity - DataSource supervisorTree is not in the pre-checked list, processing...
    === 2016-12-06 15:24:10,318 [ec-9] DEBUG AppBase - [builtinApplication.supervisorTree_loadSchema] No userTypes defined, allowing anyone access to all operations for this application
    === 2016-12-06 15:24:10,318 [ec-9] DEBUG AppBase - [builtinApplication.supervisorTree_loadSchema] No public zero-argument method named '_supervisorTree_loadSchema' found, performing generic datasource operation
    === 2016-12-06 15:24:10,318 [ec-9] INFO DSResponse - DSResponse: List with 1 items
    === 2016-12-06 15:24:10,318 [ec-9] WARN RequestContext - Content type has already been set to: text/html - setting to: text/plain; charset=UTF-8
    === 2016-12-06 15:24:10,318 [ec-9] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2016-12-06 15:24:10,319 [ec-9] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 954
    === 2016-12-06 15:24:10,319 [ec-9] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 957
    === 2016-12-06 15:24:10,319 [ec-9] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 957
    === 2016-12-06 15:24:10,319 [ec-9] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 954
    === 2016-12-06 15:24:10,319 [ec-9] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 954
    Dec 06, 2016 3:24:10 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception [javax.servlet.ServletException: java.lang.Exception: Non-RPC request ignored.] with root cause
    java.lang.Exception: Non-RPC request ignored.
    at com.isomorphic.rpc.RPCManager.parseRequest(RPCManager.java:2105)
    at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:419)
    at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:453)
    at org.apache.jsp.tools.visualBuilder.vbOperations_jsp._jspService(vbOperations_jsp.java:124)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at com.isomorphic.js.JSSyntaxScannerFilter._doFilter(JSSyntaxScannerFilter.java:272)
    at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:88)
    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:218)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

    #2
    This turns out to have been a problem with the underlying data tables. The second table has multiple entries for each person in the first table. This required a little data clean up combined with the use of a MySQL view to run a semi-complicated query to return a table that can be used with a parent linked tree grid.

    Comment

    Working...
    X