Bom dia,
Estou há alguns dias trabalhando no desenvolvimento de uma aplicação Java que possa renderizar os relatórios do Reporting Services 2008 através de um web service. Alguém aqui já fez algo do tipo e pode me ajudar? Estou com problemas para obter uma resposta do web service. Abaixo tem o código q eu estou usando para consumir o serviço e tb a mensagem de erro.
import java.io.FileOutputStream;
import java.net.URL;
import javax.xml.rpc.holders.ByteArrayHolder;
import com.microsoft.schemas.sqlserver._2005._06._30.reporting.reportingservices.ReportExecutionServiceLocator;
import com.microsoft.schemas.sqlserver._2005._06._30.reporting.reportingservices.ReportExecutionServiceSoapStub;
public class TesteWebService {
public static void main(String[] args) {
try{
URL url= new URL("http://servidor:8088/ReportServer?/Diretorio/Relatorio");
System.out.println(url);
ByteArrayHolder result= new ByteArrayHolder();
String format= "PDF";
ReportExecutionServiceLocator rsLocator= new ReportExecutionServiceLocator();
ReportExecutionServiceSoapStub proxy = (ReportExecutionServiceSoapStub) rsLocator.getReportExecutionServiceSoap(url);
proxy.setUsername("user");
proxy.setPassword("password");
proxy.render("XML", null, result, null, null, null, null, null);
/*File result*/
FileOutputStream filePDF = new FileOutputStream("c:\\Utils\\result.pdf",true);
filePDF.write(result.value);
filePDF.flush();
filePDF.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
A mensagem de volta é:
27/03/2009 08:33:54 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (400)Bad Request
faultActor:
faultNode:
faultDetail:
{}:return code: 400
<h1>Bad Request</h1>
{http://xml.apache.org/axis/}HttpErrorCode:400
(400)Bad Request
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.microsoft.schemas.sqlserver._2005._06._30.reporting.reportingservices.ReportExecutionServiceSoapStub.render(ReportExecutionServiceSoapStub.java:1220)
at com.br.siaconsultoria.reportingservices.TesteWebService.main(TesteWebService.java:36)
Bem… espero que vocês me ajudem a resolver esse problema.
Abraço a todos,
Tiago Paulino.