on 12-19-2011 2:02 PM
Hello,
i'm trying to make a jar file that encapsulates all logic to interact with the webservices of bo,
when i'm executing it from my intellij idea it works perfect, however when i package it and try to run it
via coldfusion (installing the jar and calling my custom class) i get this error in my logging
i've searched all over the internet but couldn't find any explanations for this one..
please help :]
org.apache.axis2.AxisFault: constructor exception (Error: WSE 99999)
at com.businessobjects.dsws.Consumer.CreateAxisFault(Consumer.java:767)
at com.businessobjects.dsws.Consumer.propagateAsDSWSException(Consumer.java:859)
at com.businessobjects.dsws.Consumer.<init>(Consumer.java:129)
at com.businessobjects.dsws.session.Session.<init>(Session.java:142)
It seems like the issue is related to the axis jar(s) used in your application.
I do not know in which platform you are but I will recommand you to do the test with the axis jars located at this location:
C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\Web Services\en\dsws_consumer\data\dswsJavaApi
Otherwise the recommanded jar(s) for the webservice sdk for version 3.1 with a JDK 1.5 or 1.6 are these:
The core jar files to use for Web Services Java SDK applications are:
dsws-bicatalog.jar
dsws-biplatform.jar
dsws-common.jar
dsws-publish.jar
dsws-queryservice.jar
dsws-reportengine.jar
dsws-saveservice.jar
dsws-session.jar
wilog.jar
The dependent jar files to use for Web Services Java SDK applications are:
activation-1.1.jar
axiom-api-1.2.5.jar
axiom-impl-1.2.5.jar
axis2-kernel-1.3.jar
axis2-saaj-1.3.jar
axis2-xmlbeans-1.3.jar
backport-util-concurrent-2.2.jar
commons-codec-1.3.jar
commons-httpclient-3.0.1.jar
commons-logging-1.1.jar
log4j-1.2.14.jar
mail.jar
stax-api-1.0.1.jar
struts.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.1.jar
xbean-2.2.0.jar
XmlSchema-1.3.2.jar
Thanks
Alphonse
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
sure no problem
so now with the correct libs i get this:
Caused by: java.lang.NullPointerException
at org.apache.axis2.deployment.util.Utils.loadHandler(Utils.java:118)
org.apache.axis2.deployment.DeploymentException
at org.apache.axis2.deployment.util.Utils.loadHandler(Utils.java:134)
at org.apache.axis2.deployment.AxisConfigBuilder.processPhaseList(AxisConfigBuilder.java:405)
at org.apache.axis2.deployment.AxisConfigBuilder.processPhaseOrders(AxisConfigBuilder.java:433)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:133)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:615)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:115)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:180)
at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:146)
at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:139)
at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:228)
at com.businessobjects.dsws.session.SessionLocator.<init>(SessionLocator.java:18)
at com.businessobjects.dsws.session.Session.createStub(Session.java:200)
at com.businessobjects.dsws.Consumer.<init>(Consumer.java:112)
at com.businessobjects.dsws.session.Session.<init>(Session.java:142)
at ercea.BOErcea.login(BOErcea.java:34)
Edited by: mortias on Dec 19, 2011 4:15 PM
tomorrow i'll check it with the jars in the server of coldfusion itself to see if there is an old version or so
activation-1.1.jar
axiom-api-1.2.5.jar
axiom-impl-1.2.5.jar
axis2-kernel-1.3.jar
axis2-saaj-1.3.jar
axis2-xmlbeans-1.3.jar
backport-util-concurrent-2.2.jar
commons-codec-1.3.jar
commons-httpclient-3.0.1.jar
commons-logging-1.1.jar
dsws-bicatalog.jar
dsws-biplatform.jar
dsws-common-util.jar
dsws-common.jar
dsws-publish.jar
dsws-queryservice.jar
dsws-reportengine.jar
dsws-saveservice.jar
dsws-session.jar
mail.jar
stax-api-1.0.1.jar
TraceLog.jar
TraceLogLog4j.jar
wilog.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.1.jar
xbean-2.2.0.jar
XmlSchema-1.3.2.jar
The core jar(s) for the Webservice BI 4.0 are this location:
C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\web services\en\dsws_consumer\data\dswsJavaApi
But the axis jar(s) that you could use for the test are from this location:
C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib\external
already big tx for your input, however i see releated to this post http://forums.adobe.com/message/3792293#3792293 that coldfusion doesn't use the axis2 and it's quite deep compiled within the code, i'll try to go native then but i don't know which jar files are required then?
ok i got it working, i now make a native connection and i see the "tree" structure,
i do my manual selects like this:
private HashMap<Integer, IInfoObject> getCategoryListFrom(String fn) {
res = new HashMap<Integer, IInfoObject>();
try {
String sQuery = "SELECT SI_ID FROM CI_INFOOBJECTS WHERE SI_NAME='" + fn + "' AND SI_KIND='folder'";
IInfoObjects categories = iStore.query(sQuery);
if (!categories.isEmpty() && categories.size() == 1) {
IInfoObject category = (IInfoObject) categories.get(0);
res.put(category.getID(), category);
getCategoryList(iStore, category.getID(), "");
}
return res;
} catch (Exception ex) {
ex.printStackTrace();
return res;
}
}
but now i want to download a report :] but without using webservices..
public byte[] getReportPdf(IInfoObject oInfoObject) {
byte[] report = new byte[0];
try {
ReportEngines engines = (ReportEngines) enterpriseSession.getService("ReportEngines");
ReportEngine reportEngine = engines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
DocumentInstance docInstance = reportEngine.openDocument(oInfoObject.getID());
/*
Properties props = new Properties();
props.put("title", "this is a test title");
docInstance.setProperties(props);
*/
BinaryView bv = (BinaryView) docInstance.getView(OutputFormatType.PDF);
report = bv.getContent();
docInstance.closeDocument();
engines.close();
reportEngine.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return report;
}
I will strongly advise you to go native, use a jsp application (java) for testing and see how it goes.
Here is the information about the module jar(s) required for BI 4.0 webservices:
The BI 4.0 Web Services Java SDK Jar files are located in: C:\Program Files (x86)\SAP Business Objects\SAP BusinessObjects Enterprise XI 4.0\java\lib
The External/3rd party Jars are located in: C:\Program Files (x86)\SAP Business Objects\SAP BusinessObjects Enterprise XI 4.0\java\lib\external
The core jar files to use for SAP BusinessIntelligence Platform 4.0 Web Services Java SDK applications are:
dsws-bicatalog.jar
dsws-biplatform.jar
dsws-common.jar
dsws-common-util.jar
dsws-publish.jar
dsws-queryservice.jar
dsws-reportengine.jar
dsws-saveservice.jar
dsws-session.jar
TraceLog.jar
The dependent jar files to use for SAP BusinessIntelligence Platform 4.0 Web Services Java SDK applications are:
activation-1.1.jar
axiom-api-1.2.5.jar
axiom-impl-1.2.5.jar
axis2-kernel-1.3.jar
axis2-saaj-1.3.jar
axis2-xmlbeans-1.3.jar
backport-util-concurrent-2.2.jar
commons-codec-1.3.jar
commons-httpclient-3.0.1.jar
commons-logging-1.1.jar
log4j1-2-.14.jar
mail.jar
stax-api-1.0.1.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.1.jar
xbean-2.2.0.jar
XmlSchema-1.3.2.jar
The resources for additional languages are:
dsws-common-util_xx.jar
let me know
Thanks
tx again for your input, so i'm native now, however if i want to download a report
this code relies on the dsws packages which are webservices right?
how can i download a report without webservices (so native ?)
ReportEngines engines = (ReportEngines) enterpriseSession.getService("ReportEngines");
ReportEngine reportEngine = engines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
This code shows that you are using the ReportEngines SDK which is another API and withe the reportengines SDK the code look like that:
<%
// get the document
String strDocID = request.getParameter("DocID");
int intDocID = Integer.parseInt(strDocID)
String strQuery = "Select SI_KIND from CI_INFOOBJECTS "
+ "where SI_ID=" + strDocID;
IInfoObjects iDocuments = iStore.query(strQuery);
IInfoObject iDocument = (IInfoObject) iDocObjects.get(0);
String strKind = iDocObject.getKind();
// Instantiate appropriate ReportEngine according to
// document type
ReportEngine repEng = null;
if (strKind.equals("Webi"))
repEng = reportEngines.getService(
ReportEngineType.WI_REPORT_ENGINE);
else
repEng = reportEngines.getService(
ReportEngineType.FC_REPORT_ENGINE);
// Open the document using its repository ID
DocumentInstance doc = repEng.openDocument(intDocID);
BinaryView docBinaryView = (BinaryView)doc.getView(OutputFormatType.PDF);
//Parameterize the response
response.setContentType("application/pdf");
response.setHeader("Content-Type", "application/pdf");
response.setDateHeader("expires", 0);
//output the binary stream via the response object
docBinaryView.getContent(response.getOutputStream());
%>
which will display the report in pdf in the browser
Also note that if you decide to use the reportengines SDK, in BI 4.0 there are some limitations now compared to the functionalities available in BOE XI 3.1:
In SAP BusinessObjects XI 4.0 release, the Report Engine SDK does not support the following features:
u2022 Drilling in Web Intelligence documents
u2022 Building queries
u2022 Document and report editing
ok great, it works in intellij idea, but when i deploy it on cf i get a lot of these errors
This configurator is duplicated: 'com.businessobjects.rebean.wi.impl.config.RebeanConfigurator'
Bundle locations:
jar:file:D:/DevApps/Servers/ColdFusion9/wwwroot/WEB-INF/lib/rebean.wi.jar!/META-INF/MANIFEST.MF
jar:file:D:/DevApps/Servers/ColdFusion9/wwwroot/WEB-INF/lib/rebean.wi.jar!/META-INF/MANIFEST.MF
=> A bundle must appear only once in the classpath, please clean up.
This configurator is duplicated: 'com.sap.sl.sdk.services.common.ModuleConfigurator'
Bundle locations:
jar:file:D:/DevApps/Servers/ColdFusion9/wwwroot/WEB-INF/lib/dsl_sdk_services.jar!/META-INF/MANIFEST.MF
jar:file:D:/DevApps/Servers/ColdFusion9/wwwroot/WEB-INF/lib/dsl_sdk_services.jar!/META-INF/MANIFEST.MF
=> A bundle must appear only once in the classpath, please clean up.
From your cold fusion machine if you launch: http://<servername>:<port>/dswsbobje/services does it work?
where servername is your BOBJ provider and port is usually 8080: if provider is running off tomcat.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
well i can call it because they are both behind the proxy
when i try to envoke it via soap ui i also get a null
Edited by: mortias on Dec 19, 2011 3:38 PM
(i made a wrapper because the soapui didn't work so i think they are related )
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://session.dsws.businessobjects.com/2007/06/01">
<soapenv:Header/>
<soapenv:Body>
<ns:login>
<ns:EnterpriseCredential Login="Administrator" Password="**************"/>
</ns:login>
</soapenv:Body>
</soapenv:Envelope>
result:
<DSWSException xmlns="http://dsws.businessobjects.com/2007/06/01">
<ID xmlns="">S2</ID>
<Message xmlns="">login exception (Error: WSE 99998)</Message>
<Operation xmlns="">http://session.dsws.businessobjects.com/2007/06/01/login</Operation>
<CallStackTrace xmlns="">java.lang.NullPointerException
at com.businessobjects.dsws.session.SessionSkeleton.login(SessionSkeleton.java:616)
at com.businessobjects.dsws.session.SessionMessageReceiverInOut.invokeBusinessLogic(SessionMessageReceiverInOut.java:88)
at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Edited by: mortias on Dec 19, 2011 3:42 PM
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.