Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

ListGrid Umlaut Codepage Encoding issues only in exportClientData

$
0
0
Hi Isomorphic,

I'm on a recent 4.1p (v9.1p_2015-02-07) and have the following issue on ListGrid.exportClientData():
All exports have broken umlauts (äöüß) and Euro-signs (see screenshot).

I'm using
Code:

DSRequest requestProperties = new DSRequest() {
        {
                setExportAs(ExportFormat.OOXML);
                setExportFilename(exportFileName);
        }
};
lg.exportClientData(requestProperties);

The main page is defined with:
Code:

<!DOCTYPE html>
<html>
  <head>
                <meta http-equiv="content-type" content="text/html; charset=UTF-8">
                <meta name="gwt:property" content="locale=de">
...

and I'm seeing this behaviour in FF26 as well as GC 40.

The server request looks like this:
Code:

=== 2015-02-11 18:09:05,741 [c-15] INFO  RequestContext - URL: '/lms/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0': Moz (Gecko) with Accept-Encoding header
=== 2015-02-11 18:09:05,749 [c-15] DEBUG RPCManager - Processing 1 requests.
=== 2015-02-11 18:09:05,749 [c-15] DEBUG RPCManager - Request #1 (RPCRequest) data: {
    appID:"isc_builtin",
    className:"builtin",
    methodName:"downloadClientExport",
    arguments:[
        [
            {
                STATUS_SHORTNAME:"In Erstellung",
                leadAction:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"Compäny with A-Umlaut (Ã?ö-two OUmlaut Ã?ü-two UUmlaut)",
                POTREV_RESELLER:"2.000 â?¬"
            }
        ],
        "ooxml",
        "leads_in_creation.xlsx",
        "download",
        {
            exportAs:"ooxml",
            exportDisplay:"download",
            exportFilename:"leads_in_creation.xlsx",
            exportPath:null,
            exportToClient:null,
            exportToFilesystem:null,
            exportDelimiter:null,
            exportFields:[
                "STATUS_SHORTNAME",
                "leadAction",
                "CUST_NAME_CONTACTPERSFULLNAME",
                "POTREV_RESELLER"
            ],
            exportHeader:null,
            exportHeaderless:null,
            exportFooter:null,
            exportTitleSeparatorChar:null,
            exportDefaultBGColor:null,
            exportAlternateRowBGColor:null,
            exportRowBGColors:{
            },
            exportColumnBGColors:{
            },
            exportRawValues:false,
            exportCurrencySymbol:"â?¬",
            lineBreakStyle:null,
            exportOtherFields:{
                STATUS_SHORTNAME:"Leadstatus",
                leadAction:"Aktionen",
                CUST_NAME_CONTACTPERSFULLNAME:"Ansprechpartner",
                POTREV_RESELLER:"geschätztes Auftragsvolumen (Erstellerangabe)"
            },
            exportWrapHeaderTitles:null
        }
    ],
    is_ISC_RPC_DMI:true
}
=== 2015-02-11 18:09:05,750 [c-15] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-02-11 18:09:05,752 [c-15] DEBUG RPCDMI - appConfig: isc.Application.create({
    rpcBindings:[
        {
            ID:"builtin",
            className:"com.isomorphic.rpc.BuiltinRPC",
            visibleMethods:[
                {
                    name:"downloadWSDL"
                },
                {
                    name:"downloadClientContent"
                },
                {
                    name:"downloadClientExport"
                },
                {
                    name:"xmlToJS"
                },
                {
                    name:"uploadProgressCheck"
                },
                {
                    name:"saveFile"
                },
                {
                    name:"appendToFile"
                },
                {
                    name:"loadFile"
                },
                {
                    name:"deleteFile"
                },
                {
                    name:"loadSharedXML"
                },
                {
                    name:"saveSharedXML"
                },
                {
                    name:"getAvailableScriptEngines"
                },
                {
                    name:"devConsoleEvalServerScript"
                },
                {
                    name:"evalJava"
                },
                {
                    name:"getLogNames"
                },
                {
                    name:"getLogEntries"
                },
                {
                    name:"clearLogEntries"
                },
                {
                    name:"getLogThresholds"
                },
                {
                    name:"setLogThreshold"
                },
                {
                    name:"setTemporaryLogThreshold"
                },
                {
                    name:"revertTemporaryLogThresholds"
                },
                {
                    name:"getPdfObject"
                },
                {
                    name:"exportImage"
                },
                {
                    name:"areServerTimingsTracked"
                },
                {
                    name:"trackServerTimings"
                }
            ]
        },
        {
            ID:"builtin_tools",
            className:"com.isomorphic.tools.BuiltinRPC",
            visibleMethods:[
                {
                    name:"getDataSourceFromTable"
                },
                {
                    name:"getDataSourceJSONFromTable"
                },
                {
                    name:"getDataSourceFromHibernateMapping"
                },
                {
                    name:"getDataSourceJSONFromHibernateMapping"
                },
                {
                    name:"getTables"
                },
                {
                    name:"getFieldsFromTable"
                },
                {
                    name:"getBeanFields"
                },
                {
                    name:"getHibernateBeans"
                },
                {
                    name:"getDatabaseProductNameAndVersion"
                },
                {
                    name:"getDatabaseTableTypes"
                },
                {
                    name:"setAttributes"
                },
                {
                    name:"clearAttributes"
                },
                {
                    name:"getAttributes"
                },
                {
                    name:"getAttribute"
                },
                {
                    name:"getDataSourceConfigFromJavaClass"
                },
                {
                    args:"cName",
                    language:"groovy",
                    name:"getJavaSource",
                    script:"\n                    if (!com.isomorphic.auth.DevModeAuthFilter.devModeAuthorized(request)) throw new Exception(\"Not Authorized\");                    \n                    //import org.apache.bcel.Repository;\n\n                    try {\n                        return org.apache.bcel.Repository.lookupClass(cName).toString();\n                    } catch (Throwable e) {\n                        return \"Unable to reverse engineer class \"+cName+\": \"+e.getMessage();\n                    }\n                "
                },
                {
                    name:"loadDataSource"
                },
                {
                    name:"dsFromXML"
                },
                {
                    name:"dsConfigFromXML"
                },
                {
                    name:"getDefinedDataSources"
                }
            ]
        },
        {
            ID:"builtin_adminconsole",
            className:"com.isomorphic.tools.AdminConsole",
            visibleMethods:[
                {
                    name:"getDefinedDatabases"
                },
                {
                    name:"testDB"
                },
                {
                    name:"saveDBConfig"
                },
                {
                    name:"setDefaultDB"
                },
                {
                    name:"importDataSources"
                },
                {
                    name:"discoverJNDIDatabases"
                }
            ]
        }
    ]
})

=== 2015-02-11 18:09:05,754 [c-15] INFO  BuiltinRPC - Export data passed to server:
[
    {
        STATUS_SHORTNAME:"In Erstellung",
        leadAction:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"Compäny with A-Umlaut (Ã?ö-two OUmlaut Ã?ü-two UUmlaut)",
        POTREV_RESELLER:"2.000 â?¬"
    }
]
=== 2015-02-11 18:09:05,754 [c-15] INFO  ProxyHttpServletResponse - content-disposition set to: attachment; fileName=leads_in_creation.xlsx - unwrapping response output stream (CompressionFilter)
=== 2015-02-11 18:09:05,754 [c-15] INFO  BuiltinRPC - Generating and streaming ooxml file...
=== 2015-02-11 18:09:05,808 [c-15] DEBUG RPCDMI - rpc returned data

As you can see, the data arrives already corrupted at the server.

The client request looks like this (also as screenshot):
Code:

{
    "actionURL":"http://localhost:8080/lms/lms/sc/IDACall",
    "showPrompt":true,
    "prompt":"Suche Datensätze die den Kriterien entsprechen...",
    "transport":"xmlHttpRequest",
    "promptStyle":"cursor",
    "bypassCache":true,
    "data":{
        "criteria":{
            "fieldName":"CREATED_BY",
            "operator":"equals",
            "value":1083,
            "_constructor":"AdvancedCriteria"
        },
        "operationConfig":{
            "dataSource":"V_LEAD_INCREATION",
            "repo":null,
            "operationType":"fetch",
            "textMatchStyle":"exact"
        },
        "startRow":0,
        "endRow":1000,
        "sortBy":[
            "CAMPAIGN_NAME"
        ],
        "componentId":"ListGrid_inCreation",
        "appID":"builtinApplication",
        "operation":"V_LEAD_INCREATION_fetch",
        "oldValues":{
            "fieldName":"CREATED_BY",
            "operator":"equals",
            "value":1083,
            "_constructor":"AdvancedCriteria"
        }
    }
}

Is this enough information to find out what is going on? It happens for me on the server (CentOS 6) as well as in dev (German Win8).

Server startup log, in case that it is important (don't think so) is:
Code:

Feb 11, 2015 6:14:12 PM org.apache.catalina.core.AprLifecycleListener init
INFORMATION: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\oraclexe\app\oracle\product\11.2.0\client_1;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Git\cmd;C:\Program Files\TortoiseGit\bin;.
Feb 11, 2015 6:14:12 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-bio-8080"]
Feb 11, 2015 6:14:12 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["ajp-bio-8009"]
Feb 11, 2015 6:14:12 PM org.apache.catalina.startup.Catalina load
INFORMATION: Initialization processed in 1394 ms
Feb 11, 2015 6:14:12 PM org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service Catalina
Feb 11, 2015 6:14:12 PM org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/7.0.50
Feb 11, 2015 6:14:13 PM org.apache.catalina.startup.HostConfig deployWAR
INFORMATION: Deploying web application archive C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\lms.war
ISC: Configuring log4j from: file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/lms/WEB-INF/classes/log4j.isc.config.xml
=== 2015-02-11 18:14:22,615 [op-1] INFO  ISCInit - Isomorphic SmartClient/SmartGWT Framework - Initializing
=== 2015-02-11 18:14:22,620 [op-1] INFO  ConfigLoader - Attempting to load framework.properties from CLASSPATH
=== 2015-02-11 18:14:22,732 [op-1] INFO  ConfigLoader - Successfully loaded framework.properties from CLASSPATH at location: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/lms/WEB-INF/lib/isomorphic_core_rpc.jar!/framework.properties
=== 2015-02-11 18:14:22,732 [op-1] INFO  ConfigLoader - Attempting to load project.properties from CLASSPATH
=== 2015-02-11 18:14:22,732 [op-1] INFO  ConfigLoader - Unable to locate project.properties in CLASSPATH
=== 2015-02-11 18:14:22,737 [op-1] INFO  ConfigLoader - Successfully loaded isc_interfaces.properties from CLASSPATH at location: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/lms/WEB-INF/lib/isomorphic_core_rpc.jar!/isc_interfaces.properties
=== 2015-02-11 18:14:22,737 [op-1] INFO  ConfigLoader - Attempting to load server.properties from CLASSPATH
=== 2015-02-11 18:14:22,742 [op-1] INFO  ConfigLoader - Successfully loaded server.properties from CLASSPATH at location: file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/lms/WEB-INF/classes/server.properties
=== 2015-02-11 18:14:22,749 [op-1] INFO  Logger - Logging system started.
=== 2015-02-11 18:14:22,751 [op-1] INFO  ISCInit - Auto-detected webRoot - using: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\lms
=== 2015-02-11 18:14:22,752 [op-1] INFO  ISCInit - Isomorphic SmartClient/SmartGWT Framework (v9.1p_2015-02-07/EVAL Deployment 2015-02-07) - Initialization Complete
Feb 11, 2015 6:14:22 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMATION: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\docs
Feb 11, 2015 6:14:23 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMATION: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\host-manager
Feb 11, 2015 6:14:23 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMATION: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager
Feb 11, 2015 6:14:23 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMATION: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
Feb 11, 2015 6:14:23 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["http-bio-8080"]
Feb 11, 2015 6:14:23 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["ajp-bio-8009"]
Feb 11, 2015 6:14:23 PM org.apache.catalina.startup.Catalina start
INFORMATION: Server startup in 11138 ms

Thank you & Best regards,
Blama


Viewing all articles
Browse latest Browse all 4756

Trending Articles