的SQL server 我這里用SS代替,Sql Server Analysis Service 我用SSAS代替,
這是OPENI文檔中也這么稱(chēng)呼,希望大家習(xí)慣。
介紹我的環(huán)境:
windows xp pro + sp2
SS 2000 開(kāi)發(fā)版(中文) + sp3a
SSAS 2000 +sp3a
XML analysis SDK 6.0
XMLA SDK 1.1
sorry我的迅雷歷史察看有問(wèn)題,列不出地址了。大家自己找吧。
安裝方法可以參看openi首頁(yè)的安裝文檔,上面詳細(xì)介紹了如何安裝
注意,這里SSAS 2000 和SS用的是sp3a的補(bǔ)丁,openi官方稱(chēng)jpivot
不支持SSAS 2000+sp4 或SS 2005,需要修改文件。修改方法看openi
的wiki,(我沒(méi)試過(guò))。
為什么,要用SSAS 2000呢?因?yàn)镾SAS 2005明確說(shuō),要使用XMLA
SOAP必須要windows 2003,配IIS 6.0,我的機(jī)器是xp,也不想裝2003所以
必須選SSAS2000,關(guān)于IIS6.0我起先想裝到xp上,下了n多的所謂的6.0 for XP
全是假的,還中了n個(gè)木馬。記住IIS6.0只有在2003上,xp上是沒(méi)有的,
openi中文檔里說(shuō)的applaction pool在2003中才有,同樣web services也必須
2003上配。SSAS 2000為什么選sp3a這是openi說(shuō)的,俺就不試sp4了,省的有問(wèn)題
先安裝以上我列舉的軟件。
然后在IIS,管理面板中選擇,默認(rèn)站點(diǎn),新建虛擬目錄,目錄名為xmla指向
C:\Program Files\Microsoft XML For Analysis SDK\isapi
設(shè)置可匿名訪問(wèn)該虛擬目錄,并在屬性中設(shè)置,執(zhí)行權(quán)限是腳本和可執(zhí)行文件。
設(shè)完后在瀏覽器中輸入:
http://localhost/xmla/msxisapi.dll
應(yīng)該看到如下顯示:
<?xml version="1.0" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault xmlns:XA="urn:schemas-microsoft-com:xml-analysis">
<faultcode>XA:XMLAnalysisError.88BA0800</faultcode>
<faultstring>Web 服務(wù)只支持 POST 操作。</faultstring>
<faultactor>urn:schemas-microsoft-com:xml-analysis</faultactor>
- <detail>
<Error ErrorCode="2293893120" Description="Web 服務(wù)只支持 POST 操作。" Source="urn:schemas-microsoft-com:xml-analysis" />
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
意思是說(shuō),xmla不支持get,必須post操作
到這里,任務(wù)完成了多半
在你的配置里,修改xmla的配置讓他指向,這里就ok了
例如morndian 中修改WEB-INF/question/xmla.jsp中
<jp:xmlaQuery id="query01"
uri="http://localhost/xmla/msxisapi.dll"
catalog="FoodMart 2000">
注意catalog是FoodMart 2000
然后到界面中,預(yù)覽就OK了。
這里有幾個(gè)問(wèn)題,玩了我3天,我先列舉一些
SQL server 2005 soap必須在2003上配
IIS 6.0不能裝在XP上
SQL server 的sp補(bǔ)丁必須跟服務(wù)器語(yǔ)言版本一致,openi的是E文的不能用
不要用xmlaTest.jsp測(cè)試(我測(cè)試xmla都用這個(gè),結(jié)果就是這個(gè)玩了我兩天)
xmlaTest.jsp發(fā)送的報(bào)文是Form的一個(gè)簡(jiǎn)單Post,如果直接把URL,換為msxisapi.dll
就會(huì)報(bào)
<faultcode>XA:XMLAnalysisError.8007000E</faultcode>
<faultstring>處理請(qǐng)求時(shí)出錯(cuò)。</faultstring>
Goole半天終于知道要在http請(qǐng)求頭中加入:
SOAPAction: "urn:schemas-microsoft-com:Discover"
對(duì)這句話解釋是:XML/A servers didn't require it, but by the "letter of the law" it should be in there.
form post的時(shí)候當(dāng)然沒(méi)這個(gè)東東了。
而jpivot中發(fā)送的時(shí)候帶,看報(bào)文:
POST /xmla/msxisapi.dll HTTP/1.1^M
SOAPAction: "urn:schemas-microsoft-com:xml-analysis:Discover"^M
Content-Type: text/xml; charset="utf-8"^M
Content-Length: 429^M
Cache-Control: no-cache^M
Pragma: no-cache^M
User-Agent: Java/1.5.0.03^M
Host: 192.168.0.203:9444^M
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2^M
Connection: keep-alive^M
注意到了沒(méi),有個(gè)SOAPAction,而testXMLA.jsp是Form提交當(dāng)然沒(méi)有,
看報(bào)文頭如下:
POST /xmla/msxisapi.dll HTTP/1.1^M
User-Agent: Opera/9.01 (Windows NT 5.1; U; zh-cn)^M
Host: 192.168.0.203:9444^M
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1^M
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8^M
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1^M
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0^M
Referer: http://192.168.0.203:8444/mon/xmlaTest.jsp^M
Connection: Keep-Alive^M
Content-Length: 1134^M
Content-Type: application/x-www-form-urlencoded
所以MS的SSAS,XMLA要報(bào)那個(gè)該死的錯(cuò)誤。你要不明白原理,調(diào)死你也不通。
為了這個(gè)試了N種組合,包括XMLA SDK版本降級(jí)。。。
http://www.bbker.com/D7478.html
這是OPENI文檔中也這么稱(chēng)呼,希望大家習(xí)慣。
介紹我的環(huán)境:
windows xp pro + sp2
SS 2000 開(kāi)發(fā)版(中文) + sp3a
SSAS 2000 +sp3a
XML analysis SDK 6.0
XMLA SDK 1.1
sorry我的迅雷歷史察看有問(wèn)題,列不出地址了。大家自己找吧。
安裝方法可以參看openi首頁(yè)的安裝文檔,上面詳細(xì)介紹了如何安裝
注意,這里SSAS 2000 和SS用的是sp3a的補(bǔ)丁,openi官方稱(chēng)jpivot
不支持SSAS 2000+sp4 或SS 2005,需要修改文件。修改方法看openi
的wiki,(我沒(méi)試過(guò))。
為什么,要用SSAS 2000呢?因?yàn)镾SAS 2005明確說(shuō),要使用XMLA
SOAP必須要windows 2003,配IIS 6.0,我的機(jī)器是xp,也不想裝2003所以
必須選SSAS2000,關(guān)于IIS6.0我起先想裝到xp上,下了n多的所謂的6.0 for XP
全是假的,還中了n個(gè)木馬。記住IIS6.0只有在2003上,xp上是沒(méi)有的,
openi中文檔里說(shuō)的applaction pool在2003中才有,同樣web services也必須
2003上配。SSAS 2000為什么選sp3a這是openi說(shuō)的,俺就不試sp4了,省的有問(wèn)題
先安裝以上我列舉的軟件。
然后在IIS,管理面板中選擇,默認(rèn)站點(diǎn),新建虛擬目錄,目錄名為xmla指向
C:\Program Files\Microsoft XML For Analysis SDK\isapi
設(shè)置可匿名訪問(wèn)該虛擬目錄,并在屬性中設(shè)置,執(zhí)行權(quán)限是腳本和可執(zhí)行文件。
設(shè)完后在瀏覽器中輸入:
http://localhost/xmla/msxisapi.dll
應(yīng)該看到如下顯示:
<?xml version="1.0" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault xmlns:XA="urn:schemas-microsoft-com:xml-analysis">
<faultcode>XA:XMLAnalysisError.88BA0800</faultcode>
<faultstring>Web 服務(wù)只支持 POST 操作。</faultstring>
<faultactor>urn:schemas-microsoft-com:xml-analysis</faultactor>
- <detail>
<Error ErrorCode="2293893120" Description="Web 服務(wù)只支持 POST 操作。" Source="urn:schemas-microsoft-com:xml-analysis" />
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
意思是說(shuō),xmla不支持get,必須post操作
到這里,任務(wù)完成了多半
在你的配置里,修改xmla的配置讓他指向,這里就ok了
例如morndian 中修改WEB-INF/question/xmla.jsp中
<jp:xmlaQuery id="query01"
uri="http://localhost/xmla/msxisapi.dll"
catalog="FoodMart 2000">
注意catalog是FoodMart 2000
然后到界面中,預(yù)覽就OK了。
這里有幾個(gè)問(wèn)題,玩了我3天,我先列舉一些
SQL server 2005 soap必須在2003上配
IIS 6.0不能裝在XP上
SQL server 的sp補(bǔ)丁必須跟服務(wù)器語(yǔ)言版本一致,openi的是E文的不能用
不要用xmlaTest.jsp測(cè)試(我測(cè)試xmla都用這個(gè),結(jié)果就是這個(gè)玩了我兩天)
xmlaTest.jsp發(fā)送的報(bào)文是Form的一個(gè)簡(jiǎn)單Post,如果直接把URL,換為msxisapi.dll
就會(huì)報(bào)
<faultcode>XA:XMLAnalysisError.8007000E</faultcode>
<faultstring>處理請(qǐng)求時(shí)出錯(cuò)。</faultstring>
Goole半天終于知道要在http請(qǐng)求頭中加入:
SOAPAction: "urn:schemas-microsoft-com:Discover"
對(duì)這句話解釋是:XML/A servers didn't require it, but by the "letter of the law" it should be in there.
form post的時(shí)候當(dāng)然沒(méi)這個(gè)東東了。
而jpivot中發(fā)送的時(shí)候帶,看報(bào)文:
POST /xmla/msxisapi.dll HTTP/1.1^M
SOAPAction: "urn:schemas-microsoft-com:xml-analysis:Discover"^M
Content-Type: text/xml; charset="utf-8"^M
Content-Length: 429^M
Cache-Control: no-cache^M
Pragma: no-cache^M
User-Agent: Java/1.5.0.03^M
Host: 192.168.0.203:9444^M
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2^M
Connection: keep-alive^M
注意到了沒(méi),有個(gè)SOAPAction,而testXMLA.jsp是Form提交當(dāng)然沒(méi)有,
看報(bào)文頭如下:
POST /xmla/msxisapi.dll HTTP/1.1^M
User-Agent: Opera/9.01 (Windows NT 5.1; U; zh-cn)^M
Host: 192.168.0.203:9444^M
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1^M
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8^M
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1^M
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0^M
Referer: http://192.168.0.203:8444/mon/xmlaTest.jsp^M
Connection: Keep-Alive^M
Content-Length: 1134^M
Content-Type: application/x-www-form-urlencoded
所以MS的SSAS,XMLA要報(bào)那個(gè)該死的錯(cuò)誤。你要不明白原理,調(diào)死你也不通。
為了這個(gè)試了N種組合,包括XMLA SDK版本降級(jí)。。。
http://www.bbker.com/D7478.html