Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Migration problem, BIRT OdaException : Server Authentication Required
Gry
<p>Hi, I'm running application with below details : </p>
<p> </p>
<p><strong>[Old Environment]</strong></p>
<p>BIRT Runttime 3.7.2</p>
<p>Weblogic 11g</p>
<p>Axis Datasource</p>
<p> </p>
<p><strong>[New Environment]</strong></p>
<p>BIRT Runtime 3.7.2</p>
<p>Weblogic 12c</p>
<p>Jax-WS DataSource</p>
<p> </p>
<p>The report is running fine on the old environment, but not in new environment. Below are the steps that I have done so far : </p>
<ol><li>Make sure web service is accessible</li>
<li>Rebuild the *.rptdesign, since the web service changed from Axis to Jax-WS</li>
</ol><p> </p>
<p>How can I fix this ?</p>
<p> </p>
<p> </p>
<p>Below are the complete stack trace : </p>
<p> </p>
<div>Aug 24, 2016 8:21:14 AM org.eclipse.birt.data.engine.odaconsumer.PreparedStatement execute</div>
<div>FINER: ENTRY</div>
<div>Aug 24, 2016 8:21:14 AM org.eclipse.birt.data.engine.odaconsumer.PreparedStatement doGetMetaData</div>
<div>FINER: ENTRY</div>
<div>Aug 24, 2016 8:21:14 AM org.eclipse.birt.data.engine.odaconsumer.PreparedStatement doGetMetaData</div>
<div>FINER: RETURN org.eclipse.birt.data.engine.executor.ResultClass@58e8d36a</div>
<div>Aug 24, 2016 8:21:14 AM org.eclipse.birt.data.engine.odaconsumer.PreparedStatement execute</div>
<div>SEVERE: Cannot execute the statement.</div>
<div>org.eclipse.datatools.connectivity.oda.OdaException: Server Authentication Required</div>
<div>at org.eclipse.datatools.enablement.oda.ws.util.RawMessageSender.getSOAPResponse(RawMessageSender.java:107)</div>
<div>at org.eclipse.datatools.enablement.oda.ws.impl.Query.getInputStream(Query.java:184)</div>
<div>at org.eclipse.datatools.enablement.oda.ws.impl.Query.initXMLQuery(Query.java:136)</div>
<div>at org.eclipse.datatools.enablement.oda.ws.impl.Query.executeQuery(Query.java:128)</div>
<div>at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doExecuteQuery(OdaQuery.java:469)</div>
<div>at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.executeQuery(OdaQuery.java:433)</div>
<div>at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:575)</div>
<div>at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:927)</div>
<div>at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:441)</div>
<div>at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1495)</div>
<div>at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)</div>
<div>at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)</div>
<div>at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)</div>
<div>at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)</div>
<div>at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)</div>
<div>at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1897)</div>
<div>at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)</div>
<div>at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)</div>
<div>at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)</div>
<div>at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)</div>
<div>at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:111)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:160)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)</div>
<div>at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)</div>
<div>at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)</div>
<div>at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)</div>
<div>at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:929)</div>
<div>at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)</div>
<div>at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)</div>
<div>at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)</div>
<div>at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)</div>
<div>at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)</div>
<div>at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)</div>
<div>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div>
<div>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</div>
<div>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</div>
<div>at java.lang.reflect.Method.invoke(Method.java:497)</div>
<div>at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)</div>
<div>at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)</div>
<div>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div>
<div>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</div>
<div>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</div>
<div>at java.lang.reflect.Method.invoke(Method.java:497)</div>
<div>at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)</div>
<div>at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)</div>
<div>at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)</div>
<div>at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)</div>
<div>at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)</div>
<div>at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)</div>
<div>at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)</div>
<div>at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)</div>
<div>at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)</div>
<div>at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)</div>
<div>at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)</div>
<div>at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)</div>
<div>at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)</div>
<div>at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)</div>
<div>at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)</div>
<div>at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)</div>
<div>at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)</div>
<div>at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)</div>
<div>at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243)</div>
<div>at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3432)</div>
<div>at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)</div>
<div>at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)</div>
<div>at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)</div>
<div>at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)</div>
<div>at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)</div>
<div>at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)</div>
<div>at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)</div>
<div>at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)</div>
<div>at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)</div>
<div>at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)</div>
<div>at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)</div>
Find more posts tagged with
Comments
Clement Wong
<p>To understand this issue, does the newly modified .rptdesign run in the Designer?</p>
<p> </p>
<p>Does your data source require authentication?</p>
<p> </p>
<p>What step(s) did you perform to "make sure web service is accessible"?</p>
Gry
<blockquote class="ipsBlockquote" data-author="Clement Wong" data-cid="145061" data-time="1472069495">
<div>
<p>To understand this issue, does the newly modified .rptdesign run in the Designer?</p>
<p> </p>
<p>Does your data source require authentication?</p>
<p> </p>
<p>What step(s) did you perform to "make sure web service is accessible"?</p>
</div>
</blockquote>
<p> </p>
<p>Yes, the newly modified rptdesign was run in the designer.</p>
<p> </p>
<p>I did verify the service, by accessing the web service through URL, and I aware there is "Test connection" inside BIRT designer. ( would it be enough ? )</p>
<p> </p>
<p>Today I downloaded the BIRT 4.6 complete pack, and make a small report with the same datasource (web service) and when I run the report, I found out it keep prompting me the popup to input credential. Seems like it's BASIC HTTP authentication. ( but it's not popped out when I triggered via browser )</p>
<p>Should I include the BASIC credential inside soap header ? any official document on how the approach being done ?</p>
<p> </p>
<p>Kindly advice, which part that I need to check further ? Thanks</p>
Clement Wong
<p>I'm not sure if you said if your data source require authentication? If so, what kind?</p>
<p> </p>
<p>So you are able to Test Connection in the Designer? What happens when try the web service URL in a browser?</p>
<p> </p>
<p>Here's a sample of basic authentication using a scripted data source / data set:</p>
<p><a data-ipb='nomediaparse' href='
http://developer.actuate.com/community/forum/index.php?/topic/36913-birt-web-service-rest-json/?p=138062'>http://developer.actuate.com/community/forum/index.php?/topic/36913-birt-web-service-rest-json/?p=138062</a></p>
;
Gry
<blockquote class="ipsBlockquote" data-author="Clement Wong" data-cid="145097" data-time="1472162205">
<div>
<p>I'm not sure if you said if your data source require authentication? If so, what kind?</p>
<p> </p>
<p>So you are able to Test Connection in the Designer? What happens when try the web service URL in a browser?</p>
<p> </p>
<p>Here's a sample of basic authentication using a scripted data source / data set:</p>
<p><a data-ipb='nomediaparse' href='
http://developer.actuate.com/community/forum/index.php?/topic/36913-birt-web-service-rest-json/?p=138062'>http://developer.actuate.com/community/forum/index.php?/topic/36913-birt-web-service-rest-json/?p=138062</a></p>
;
</div>
</blockquote>
<p> </p>
<p>I think the authentication comes from weblogic itself</p>
<p>Yes, I'm able to do "Test Connection" in the Designer, if I try to fire the webservice URL in a browser, it generates the XML structured and no credential challenge.</p>
<p> </p>
<p>Thanks for the sample, I will try and come here again with the result.</p>
<p> </p>
<p>===== Update =====</p>
<p>I managed to solve this. Found out that this is Weblogic basic authentication since the datasource is hosted in weblogic. So I change xml configuration inside Weblogic, and now the error gone.</p>
<p> </p>
<p>Thanks for the support !!</p>