无法将java.lang.Integer转换为java.lang.String异常

无法将java.lang.Integer转换为java.lang.String异常,java,postgresql,mdx,pentaho,mondrian,Java,Postgresql,Mdx,Pentaho,Mondrian,我在运行mdx查询时遇到此错误。。我真的不能理解这个错误,我再次做了很多次立方体,但我仍然得到这个错误! 这是完全错误: Warning: Could not get charToByteConverterClass! Warning: Could not get charToByteConverterClass! Warning: Could not get charToByteConverterClass! Warning: Could not get charToByteConverter

我在运行mdx查询时遇到此错误。。我真的不能理解这个错误,我再次做了很多次立方体,但我仍然得到这个错误! 这是完全错误:

Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
Warning: Could not get charToByteConverterClass!
[JPivot] 21 apr 2017 16:48:13,861 ERROR [Session 08BEA8C58E687AE8F99184BC19FA07A1] com.tonbeller.wcf.component.RendererTag#doEndTag: trouble rendering table01
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at mondrian.rolap.RolapMemberBase.getName(RolapMemberBase.java:233)
    at mondrian.olap.OlapElementBase.getCaption(OlapElementBase.java:84)
    at mondrian.olap.MemberBase.getCaption(MemberBase.java:108)
    at mondrian.rolap.DelegatingRolapMember.getCaption(DelegatingRolapMember.java:176)
    at com.tonbeller.jpivot.mondrian.MondrianMember.getLabel(MondrianMember.java:79)
    at com.tonbeller.jpivot.table.SpanBuilderImpl$RenderSwitch.visitMember(SpanBuilderImpl.java:111)
    at com.tonbeller.jpivot.mondrian.MondrianMember.accept(MondrianMember.java:161)
    at com.tonbeller.jpivot.table.SpanBuilderImpl.build(SpanBuilderImpl.java:142)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.AxisHeaderBuilderSupport.build(AxisHeaderBuilderSupport.java:63)
    at com.tonbeller.jpivot.table.AxisBuilderSupport.buildHeading(AxisBuilderSupport.java:253)
    at com.tonbeller.jpivot.table.RowAxisBuilderImpl.buildRow(RowAxisBuilderImpl.java:51)
    at com.tonbeller.jpivot.table.TableComponent.buildRows2Dim(TableComponent.java:490)
    at com.tonbeller.jpivot.table.TableComponent.render2(TableComponent.java:274)
    at com.tonbeller.jpivot.table.TableComponent.render(TableComponent.java:235)
    at com.tonbeller.wcf.component.RendererTag.doEndTag(RendererTag.java:137)
    at org.apache.jsp.testpage_jsp._jspx_meth_wcf_005frender_005f6(testpage_jsp.java:1398)
    at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:238)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
    at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:264)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[JPivot] 21 apr 2017 16:48:13,956 ERROR [Session 08BEA8C58E687AE8F99184BC19FA07A1] com.tonbeller.wcf.controller.RequestFilter$MyHandler#handleException: exeption
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
    at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:264)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:908)
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
    at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:272)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    ... 23 more
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at mondrian.rolap.RolapMemberBase.getName(RolapMemberBase.java:233)
    at mondrian.olap.OlapElementBase.getCaption(OlapElementBase.java:84)
    at mondrian.olap.MemberBase.getCaption(MemberBase.java:108)
    at mondrian.rolap.DelegatingRolapMember.getCaption(DelegatingRolapMember.java:176)
    at com.tonbeller.jpivot.mondrian.MondrianMember.getLabel(MondrianMember.java:79)
    at com.tonbeller.jpivot.table.SpanBuilderImpl$RenderSwitch.visitMember(SpanBuilderImpl.java:111)
    at com.tonbeller.jpivot.mondrian.MondrianMember.accept(MondrianMember.java:161)
    at com.tonbeller.jpivot.table.SpanBuilderImpl.build(SpanBuilderImpl.java:142)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.AxisHeaderBuilderSupport.build(AxisHeaderBuilderSupport.java:63)
    at com.tonbeller.jpivot.table.AxisBuilderSupport.buildHeading(AxisBuilderSupport.java:253)
    at com.tonbeller.jpivot.table.RowAxisBuilderImpl.buildRow(RowAxisBuilderImpl.java:51)
    at com.tonbeller.jpivot.table.TableComponent.buildRows2Dim(TableComponent.java:490)
    at com.tonbeller.jpivot.table.TableComponent.render2(TableComponent.java:274)
    at com.tonbeller.jpivot.table.TableComponent.render(TableComponent.java:235)
    at com.tonbeller.wcf.component.RendererTag.doEndTag(RendererTag.java:137)
    at org.apache.jsp.testpage_jsp._jspx_meth_wcf_005frender_005f6(testpage_jsp.java:1398)
    at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:238)
    ... 26 more
[JPivot] 21 apr 2017 16:48:14,081 ERROR [Session 08BEA8C58E687AE8F99184BC19FA07A1] com.tonbeller.wcf.controller.RequestFilter$MyHandler#handleException: cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:908)
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
    at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:272)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
    at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:264)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at mondrian.rolap.RolapMemberBase.getName(RolapMemberBase.java:233)
    at mondrian.olap.OlapElementBase.getCaption(OlapElementBase.java:84)
    at mondrian.olap.MemberBase.getCaption(MemberBase.java:108)
    at mondrian.rolap.DelegatingRolapMember.getCaption(DelegatingRolapMember.java:176)
    at com.tonbeller.jpivot.mondrian.MondrianMember.getLabel(MondrianMember.java:79)
    at com.tonbeller.jpivot.table.SpanBuilderImpl$RenderSwitch.visitMember(SpanBuilderImpl.java:111)
    at com.tonbeller.jpivot.mondrian.MondrianMember.accept(MondrianMember.java:161)
    at com.tonbeller.jpivot.table.SpanBuilderImpl.build(SpanBuilderImpl.java:142)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.SpanBuilderDecorator.build(SpanBuilderDecorator.java:34)
    at com.tonbeller.jpivot.table.navi.DrillExpandUI$DomDecorator.build(DrillExpandUI.java:81)
    at com.tonbeller.jpivot.table.AxisHeaderBuilderSupport.build(AxisHeaderBuilderSupport.java:63)
    at com.tonbeller.jpivot.table.AxisBuilderSupport.buildHeading(AxisBuilderSupport.java:253)
    at com.tonbeller.jpivot.table.RowAxisBuilderImpl.buildRow(RowAxisBuilderImpl.java:51)
    at com.tonbeller.jpivot.table.TableComponent.buildRows2Dim(TableComponent.java:490)
    at com.tonbeller.jpivot.table.TableComponent.render2(TableComponent.java:274)
    at com.tonbeller.jpivot.table.TableComponent.render(TableComponent.java:235)
    at com.tonbeller.wcf.component.RendererTag.doEndTag(RendererTag.java:137)
    at org.apache.jsp.testpage_jsp._jspx_meth_wcf_005frender_005f6(testpage_jsp.java:1398)
    at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:238)
    ... 26 more
以下是查询:

SELECT {[Measures].[quantita_media], [Measures].[quantita_totale]} ON
COLUMNS,
{([Periodo], [Articolo], [ScontrinoFiscale])} ON ROWS
FROM [Vendite]
这是postgresql架构:

CREATE TABLE data_dt (
    data character varying(10) NOT NULL,
    giorno character varying(10) NOT NULL,
    mese character varying(10) NOT NULL,
    anno character varying(4) NOT NULL
);

CREATE TABLE prodotto_dt (
    nome character varying(30) NOT NULL,
    descrizione character varying(30) NOT NULL
);
CREATE TABLE scontrino_dt (
    codice integer NOT NULL,
    totale integer NOT NULL
);
CREATE TABLE vendita_ft (
    data character varying(10) NOT NULL,
    nome character varying(30) NOT NULL,
    codice integer NOT NULL,
    quantita integer NOT NULL
);
ALTER TABLE ONLY data_dt
    ADD CONSTRAINT data_dt_pkey PRIMARY KEY (data);
ALTER TABLE ONLY prodotto_dt
    ADD CONSTRAINT prodotto_dt_pkey PRIMARY KEY (nome);
ALTER TABLE ONLY scontrino_dt
    ADD CONSTRAINT scontrino_dt_pkey PRIMARY KEY (codice);
ALTER TABLE ONLY vendita_ft
    ADD CONSTRAINT vendita_ft_pkey PRIMARY KEY (data, nome, codice);
ALTER TABLE ONLY vendita_ft
    ADD CONSTRAINT vendita_ft_codice_fkey FOREIGN KEY (codice) REFERENCES scontrino_dt(codice);
ALTER TABLE ONLY vendita_ft
    ADD CONSTRAINT vendita_ft_data_fkey FOREIGN KEY (data) REFERENCES data_dt(data);
ALTER TABLE ONLY vendita_ft
    ADD CONSTRAINT vendita_ft_nome_fkey FOREIGN KEY (nome) REFERENCES prodotto_dt(nome);
这是schema workbench生成的xml多维数据集:

<Schema name="New Schema1">
  <Cube name="Vendite" cache="true" enabled="true">
    <Table name="vendita_ft" schema="public">
    </Table>
    <Dimension type="StandardDimension" foreignKey="data" highCardinality="false" name="Periodo">
      <Hierarchy name="tempo" hasAll="true">
        <Table name="data_dt" schema="public">
        </Table>
        <Level name="giorno" table="data_dt" column="giorno" nameColumn="giorno" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
        <Level name="mese" table="data_dt" column="mese" nameColumn="mese" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
        <Level name="anno" table="data_dt" column="anno" nameColumn="anno" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
      </Hierarchy>
    </Dimension>
    <Dimension type="StandardDimension" foreignKey="nome" highCardinality="false" name="Articolo">
      <Hierarchy name="prodotto" hasAll="true">
        <Table name="prodotto_dt" schema="public">
        </Table>
        <Level name="nome" table="prodotto_dt" column="nome" nameColumn="nome" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
        <Level name="descrizione" table="prodotto_dt" column="descrizione" nameColumn="descrizione" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
      </Hierarchy>
    </Dimension>
    <Dimension type="StandardDimension" foreignKey="codice" highCardinality="false" name="ScontrinoFiscale">
      <Hierarchy name="scontrino" hasAll="true">
        <Table name="scontrino_dt" schema="public">
        </Table>
        <Level name="codice" table="scontrino_dt" column="codice" nameColumn="codice" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
        <Level name="totale" table="scontrino_dt" column="totale" nameColumn="totale" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
      </Hierarchy>
    </Dimension>
    <Measure name="quantita_media" column="quantita" aggregator="avg" visible="true">
    </Measure>
    <Measure name="quantita_totale" column="quantita" datatype="Integer" aggregator="sum" visible="true">
    </Measure>
  </Cube>
</Schema>

我想我找到了。在“scontrino_dt”表中,您将“codice”和“totale”声明为整数

CREATE TABLE scontrino_dt (
    codice integer NOT NULL,
    totale integer NOT NULL
);
但是在XML中,您将“codice”设置为String

<Level name="codice" table="scontrino_dt" column="codice" nameColumn="codice" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="totale" table="scontrino_dt" column="totale" nameColumn="totale" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>

您使用的大多数技术我都不熟悉,因此如果没有帮助,请原谅

mdx
而言,我觉得这一行的细节太少了:

{([Periodo], [Articolo], [ScontrinoFiscale])} ON ROWS
通常在mdx中,您需要声明希望显示的级别或层次结构,而上面的似乎只是维度名称。请先尝试用以下内容替换上述行:

{[Periodo].[giorno].MEMBERS} ON ROWS
或者可能是这样:

{[Periodo].[tempo].[giorno].MEMBERS} ON ROWS
你还是有错误吗?如果没有,则要在行上有多个层次
您需要找到在mondrian中执行
交叉连接的方法-在
ssas中,它是通过
*
操作符完成的:

 {[Periodo].[tempo].[giorno].MEMBERS 
* [Articolo].[prodotto].[nome].MEMBERS} ON ROWS
在Mondrian中,您可能需要使用
CROSSJOIN
功能:

 CROSSJOIN(
    [Periodo].[tempo].[giorno].MEMBERS 
   ,[Articolo].[prodotto].[nome].MEMBERS) ON ROWS

是的,这是一个错误,因为我试图解决这个问题,但不幸的是,这不是问题!整数@DiabolicWords也有同样的错误