Bug 199381 base_url not used for SOAP Request
Scenario: using the BIRT viewer behind a reverse proxy which change the request URL It is possible to specify a baseurl in the property file "viewer.properties" which is used in the generated jsp-files. So in you can change teh JSP files to the nedded (extern) URL. Anyhow the SOAP request are generated using the request URL (and therefore the reports are not displayed when the birtviewer is installed behind a reverse proxy). To change this Problem the class BirtSoapMessageDispatcherServlet.java have to be patched: In the Method doPost the soapURL is generated by the followig statement String soapURL = request.getRequestURL( ).toString( ); For solving this problem you have to replace this statements with the following String soapURL = request.getRequestURL( ).toString( ); if (ParameterAccessor.getBaseURL() != null) { soapURL = ParameterAccessor.getBaseURL() + request.getContextPath() + request.getServletPath(); } If a BaseURL parameter exists it is used to generate the URL. I hope you add this to the next release. BIRT ist a great tool!!!! Mit freundlichen Gruen / best regards Dr. Arndt Schonberg
viewer/org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/servlet/BirtSoapMessageDispatcherServlet.java
/*************************************************************************************
 * Copyright (c) 2004 Actuate Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Actuate Corporation - Initial implementation.
 ************************************************************************************/
package org.eclipse.birt.report.servlet;
import java.io.IOException;
import java.util.Iterator;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.axis.transport.http.AxisServlet;
import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.report.context.IContext;
import org.eclipse.birt.report.presentation.aggregation.IFragment;
import org.eclipse.birt.report.resource.BirtResources;
import org.eclipse.birt.report.utility.ParameterAccessor;
abstract public class BirtSoapMessageDispatcherServlet extends AxisServlet