JSp or JSF Unrecognized Content Type.

I have a simple JSF application that simply creates a panelGrid dynamically based on an input field I supply stating how many grids to render. The initial page loads up fine but when I click on either of the buttons to exit or submit the request to render the grid I get the following exception::
javax.faces.FacesException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Unrecognized Content Type.
     at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:327)
     at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
     at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
Here is a copy of my faces-config.xml
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<managed-bean>
<description>The one and only HelloBean.</description>
<managed-bean-name>helloBean</managed-bean-name>
<managed-bean-class>com.cvs.corp.demoapp.presentation.bean.HelloBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<description>Navigation from the hello page.</description>
<from-view-id>/faces/hello.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/faces/goodbye.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
The interesting thing is that when I click the back button and refresh the page it properly displays the panel with the render fields! This seem like it may be a stupid mistake but any info would be much appreciated... I am going crazy...
Here are the JSPs and the managed bean as well...
* Created on Jul 7, 2005
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
package com.cvs.corp.demoapp.presentation.bean;
import java.util.List;
import javax.faces.application.Application;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlPanelGrid;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
* @author ksbober
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
public class HelloBean {
private int numControls;
private HtmlPanelGrid controlPanel;
public HtmlPanelGrid getControlPanel() {
return controlPanel;
public void setControlPanel(HtmlPanelGrid controlPanel) {
this.controlPanel = controlPanel;
public int getNumControls() {
return numControls;
public void setNumControls(int numControls) {
this.numControls = numControls;
public void addControls(ActionEvent actionEvent) {
System.out.println("Am I in here??");
Application application = FacesContext.getCurrentInstance().getApplication();
List children = controlPanel.getChildren();
children.clear();
for(int count = 0; count < numControls; count++) {
HtmlOutputText output = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
output.setValue(" "+count+" ");
output.setStyle("color: blue");
children.add(output);
public String goodbye() {
System.out.println("How about here??");
return "success";
JSPs
hello.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD/ HTML 4.01 Transitional//EN">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>JSF in Action - Hello World!</title>
</head>
<body>
     <h:form id="welcomeForm">
     <h:outputText id="welcomeOutput"
                    value="Welcome to Java Server Faces! You da' man Kyle!!!"
                    style="font-family:Arial,san-serif; font-size:24; color:green;" />
          <p>
          <h:message id="errors" for="helloInput" style="color:red;" />
          </p>
          <p>
          <h:outputLabel for="helloInput">
               <h:outputText id="helloInputLabel"
                              value="Enter number of controls to display:" />
          </h:outputLabel>
          <h:inputText id="helloInput"
                         value="#{helloBean.numControls}"
                         required="true">
               <f:validateLongRange minimum="1" maximum="500" />
          </h:inputText>
          </p>
          <p>
          <h:panelGrid id="controlPanel"
                         binding="#{helloBean.controlPanel}"
                         columns="20"
                         border="1"
                         cellspacing="0" />
          </p>
          <h:commandButton id="redisplayCommand"
                              type="submit"
                              value="Redisplay"
                              actionListener="#{helloBean.addControls}" />
          <h:commandButton id="goodbyeCommand"
                              type="submit"
                              value="Goodbye"
                              action="#{helloBean.goodbye}"
                              immediate="true" />
</h:form>
</body>
</html>
</f:view>
goodbye.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD/ HTML 4.01 Transitional//EN">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>JSF in Action - Hello World!</title>
</head>
<body>
sdhfjsdhf
     <f:view><%--
     <h:form id="goodbyeForm">
          <p>
          <h:outputText id="welcomeOutput"
                              value="GoodBye!"
                              style="font-family:Arial,sans-serif; font-size:24; font-style:bold; color:green;" />
          </p>
          <p>
          <h:outputText id="helloBeanOutputLabel"
                              value="Number of controls displayed:" />
          <h:outputText id="helloBeanOutput"
                              value="#{helloBean.numControls}" />
          </p>
     </h:form>
     --%>
     </f:view>
     </body>
</html>

Agreed. JSPX is a well-formed version of a JSP file (i.e. an XML version of JSP). Thus, it is easy to produce pages that adhere to strict XHTML standards. A couple of things that you will need to do in JSPX files is escape ampersands and close script tags with a complete tag closure rather than the customary shortcut.
--RiC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • Weblogic Portal - Disc API bug in response content type

    Hi
    While using WLP Disc APIs in the portal for AJAX calls, the response content type returned by the weblogic portal server is:
    text/x-netuix-json-comment-filtered; charset=ISO-8859-1
    This is not getting changed to 'application/json' inspite of setting this as the content type for a JSF JSP.
    Probably, looks like a bug.
    We have a JSF portlet in which we need to make an AJAX call.
    Please refer to the weblogic whitepaper for the AJAX examples (weblogic-portal-jsf-whitepaper.pdf).
    The example works fine in the dev/build environment. When the portal server is accepting calls through Sun One webserver,
    the logs from the webserver show the response content type from the portal server as "text/x-netuix-json-comment-filtered; charset=ISO-8859-1"
    - I tried changing the content type to "application/json" in the JSF JSP (as per the example from the pdf file). Still the content type does not change.
    - The response from the portal server is suffixed with "\n\r\t". Because of the trailing space/carriage return chars in the portal server response, the sun one webserver is unable to parse (or) eliminate the "\r\n\d" chars to the browser. When the browser receives a response (with the trailing chars), the module.js (weblogic wrapper API for DISC calls) fails.
    - The module.js tries to check whether the response from portal server ends with "**/" but unfortunately, the weblogic protal server returns
    "/** %json response%**/\n\r\d"
    I found a workaround to this issue by having a filter for the JSF JSP which sets the content type as "application/json" and does a flush() before it makes a call to the JSF JSP which responsds to an ajax call. This works as the content type is set and flushed first so any attempt by the portal server to set as "text/x-netuix-json-comment-filtered" does not get reflected in the http response.
    Any support/fix from oracle regarding this will be helpful as most of the webserver integration with the portal server happens during the middle of the project build and might lead to a technical risk.
    Server details: WLPS 10.3, Sun One 7.0
    Thanks
    Ananth Krishnan

    Make sure you're using the Reverse Proxy Plugin for Web Server, not the Application Server Connector (they are VERY similar, but not the same). The RPP knows how to handle 100 Continue, the Connector does not.
    Or use Web Server 7 and its built-in reverse proxy feature.

  • Response Content type for WLP Disc API calls

    Hi
    While using WLP Disc APIs in the portal for AJAX calls, the response content type returned by the weblogic portal server is:
    text/x-netuix-json-comment-filtered; charset=ISO-8859-1
    This is not getting changed to 'application/json' inspite of setting this as the content type for a JSF JSP.
    Probably, looks like a bug.
    We have a JSF portlet in which we need to make an AJAX call.
    Please refer to the weblogic whitepaper for the AJAX examples (weblogic-portal-jsf-whitepaper.pdf).
    The example works fine in the dev/build environment. When the portal server is accepting calls through Sun One webserver,
    the logs from the webserver show the response content type from the portal server as "text/x-netuix-json-comment-filtered; charset=ISO-8859-1"
    - I tried changing the content type to "application/json" in the JSF JSP (as per the example from the pdf file). Still the content type does not change.
    - The response from the portal server is suffixed with "\n\r\t". Because of the trailing space/carriage return chars in the portal server response, the sun one webserver is unable to parse (or) eliminate the "\r\n\d" chars to the browser. When the browser receives a response (with the trailing chars), the module.js (weblogic wrapper API for DISC calls) fails.
    - The module.js tries to check whether the response from portal server ends with "**/" but unfortunately, the weblogic protal server returns
    "/** %json response%**/\n\r\d"
    I found a workaround to this issue by having a filter for the JSF JSP which sets the content type as "application/json" and does a flush() before it makes a call to the JSF JSF which responsds to an ajax call. This works as the content type is set and flushed first so any attempt by the portal server to set as "text/x-netuix-json-comment-filtered" does not get reflected in the http response.
    Any support/fix from oracle regarding this will be helpful as most of the webserver integration with the portal server happens during the middle of the project build and might lead to a technical risk.
    Server details: WLPS 10.3, Sun One 7.0
    Thanks
    Ananth Krishnan

    The problem as you can see is only related to the URL because the webservice is not expecting the URL. Have you changed the wsdl also for the new scenario? The URL can be rechecked to the one present in the wsdl at bottom of it.
    Regards,
    Prateek

  • How to set content type for a JSF page

    Hi,
    I want to know is there any way we can specify the content type of a JSF page, like in JSPs we have the page attribute <%@ page contentType="application/vnd.ms-excel" %>
    In JSP we can create a html table with values and if we specify the contenType as application/vnd.ms-excel, we would get an excel file generated.
    But do we have something similar to this is JSF, as I am using Facelets I cannot use page directive in the xhtml file.
    I tried setting the content type in MangedBean's action as follows
    ((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).setContentType("application/vnd.ms-excel"); but it did'nt work.
    Thanks in advance.

    //add related mutip-part to combine parts
    MimeMultipart multipart = new MimeMultipart("related");
    //attach a pdf
    messageBodyPart = new MimeBodyPart();
    fds = new FileDataSource("h:/something.pdf");
    messageBodyPart.setDataHandler(new DataHandler(fds));
    messageBodyPart.setFileName(fds.getName());
    multipart.addBodyPart(messageBodyPart);
    //add multipart to the message
    message.setContent(multipart);
    //send message
    Transport.send(message);

  • How to control save as option in a jsp whose content type is PDF

    Hi
    I have one jsp in which i am showing PDF, it means it content type is PDF. I want to control save as option in it,
    i.e when a user tries to save it the default name which is coming it is name of the jsp, but i want default name is dynamic which depends upon user.
    I used response.setHeader(content-deposition,inline;filename=abcd.pdf) , but it doesnt work. if i use
    response.setHeader(content-deposition,attachment;filename=abcd.pdf) then it is working but it straight away giving option as "U want to open or want to save it". I dont want this i want first PDF to be shown in jsp then if some one wants to save he will click on save button in PDF and there and want this option.
    Kindly help me

    Don't use JSP to serve a binary file. It almost implies the use of awful scriptlets and the invocation of both the response writer and the response outputstream which would only lead to IllegalStateException headaches in the server logs.
    Use a Servlet instead. Specify the file name as request parameter and let the servlet read the file and write it to the outputstream of the response.

  • I download itext  for convert jsp to PDF. How to set content type for PDF.

    I download itext for convert jsp to PDF. How to set content type for PDF. I try
    <%@ page contentType = "application/pdf;charset=TIS-620" %>
    , but the page does not PDF.
    Thank.

    PDF files are usually binary files, JSPs are not well-suited for binary content.
    (If you download the result of your JSP you'll see that it is not a valid PDF file; it will have probably a lot of whitespace and linefeeds, that will choke your PDF reader.). The first few characters must be
    "%PDF-" without whitespace.
    You can try using PDF files encoded as text - check if you can use text-encoded PDFs in iText.
    Try using a Servlet instead.

  • The content type for office excel 2007 in jsp page and the mime-type in  we

    Hi,
    In my system MS Office 2007 is installed. I am trying to generating excel sheets from JSP page by setting the content type "application/vnd.ms-excel" in jsp page and as well as in web.xml file. I am getting the below message
    The file you are trying to open, 'xxxxxxxx.xls', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?
    Then finally the excel file is opening and displaying properly. If in my system MS Office 2003 is installed , then the above message is not coming.
    I have changed the content type according to Excel 2007 <%@ page contentType= "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" %> and in web.xml file the mime type to
    <mime-mapping>
    <extension>xlsx</extension>
    <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
    </mime-mapping>
    even the content type is changed according to office excel 2007 , i am getting the same above message.
    My client is asking not to display the above message. So how to prevent that message ?
    It's very great if any body reply me as soon as possible.

    Hi Akash,
    I am not using the POI. I am generating the excel sheet using the below code.
    <jsp:directive.page import="java.util.Map" />
    <jsp:directive.page import="lehman.ra.Report.ReportDefinition" />
    <jsp:directive.page import="lehman.ra.RAUtilBean" />
    <jsp:directive.page import="java.util.ArrayList" />
    <jsp:directive.page import="lehman.util.GeneralUtil" />
    <jsp:directive.page import="lehman.admin.report.AdminHtmlReportFormatter"/>
    <jsp:directive.page import="lehman.helper.irprod.IRProdHelper"/>
    <%@ page contentType= "application/vnd.ms-excel" %>
    <jsp:directive.page import="java.util.Iterator"/>
    <jsp:directive.page import="java.util.HashMap"/>
    <%
         String strTradeDate = (String) session.getAttribute("TradingDate");
         String sContextPath = request.getContextPath();
         IRProdHelper irHelper     = new IRProdHelper();
         String  sReportFormat  = "E2E";     
         String subtab1 = request.getParameter("subtab1");
         if (subtab1 == null)
              subtab1 ="";     
         Map report_Ids    = (Map) session.getAttribute("ADMIN_E2E_REPORTS");
         AdminHtmlReportFormatter formatter = new AdminHtmlReportFormatter();
         ArrayList contentData = new ArrayList();
         ArrayList headerData  = new ArrayList();
         ArrayList metaData    = new ArrayList();
         Map resultMap            = null;
         String headerString       = "";
         String contentString  = "";
         String reportId            = "";
         int titleSpan         = 5;     
         if( report_Ids!=null && report_Ids.size() > 0){
              Object oReportObj      = null;
              Iterator rowIter = report_Ids.keySet().iterator();
              RAUtilBean raUtilBean = new RAUtilBean();
              ReportDefinition rdef = new ReportDefinition();
              while ( rowIter.hasNext() ){          
                   oReportObj = rowIter.next();     
                   reportId = oReportObj.toString();
                   System.out.println("**************reportId="+reportId);     
                   resultMap  =  (HashMap) report_Ids.get(oReportObj);
                   if(resultMap == null )
                        continue;
                   if(resultMap.size() > 0 ) {
                        contentData          = (ArrayList)resultMap.get(GeneralUtil.CONTENT_DATA);
                        headerData          = (ArrayList)resultMap.get(GeneralUtil.COL_METADATA);
                        metaData          = (ArrayList)resultMap.get(GeneralUtil.METADATA);
                        rdef = new ReportDefinition();                    
                        raUtilBean.setReportAttributes(rdef, headerData, metaData,reportId, sReportFormat);
                        titleSpan = raUtilBean.findMaxCol(contentData, rdef.getDisplayCols());
                        if("51031".equals(reportId)){                         
                             if(resultMap.get("HIDE_ETA")!=null){
                                  boolean hideETA = ((Boolean)resultMap.get("HIDE_ETA")).booleanValue();                              
                                  formatter.setHideETA(hideETA);
                                  if(hideETA){
                                       titleSpan = titleSpan-1;
                        rdef.setMaxCol(titleSpan);
                        headerString = formatter.constructHeadingForE2E(rdef, headerData);
                        contentString = formatter.constructContentForE2E(rdef, contentData, strTradeDate, sReportFormat);
    %>     
    <html xmlns:o="urn:schemas-microsoft-com:office:office"
         xmlns:x="urn:schemas-microsoft-com:office:excel"
         xmlns="http://www.w3.org/TR/REC-html40">
         <head>
         <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
         <meta name="ProgId" content="Excel.Sheet"/>
         <meta name="Generator" content="Microsoft Excel 9"/>
         <link rel="File-List" href="./Test33_files/filelist.xml"/>
         <link rel="Edit-Time-Data" href="./Test33_files/editdata.mso"/>
         <link rel="OLE-Object-Data" href="./Test33_files/oledata.mso"/>
         <link href="<%=sContextPath %>/llehman.css" rel="stylesheet" type="text/css">
         <link href="<%=sContextPath %>/llcontent.css" rel="stylesheet" type="text/css">
         <style>
         <xsl:comment>
         table
              {mso-displayed-decimal-separator:"\.";
              mso-displayed-thousand-separator:"\,";}
         .style0
              {mso-number-format:General;
              text-align:general;
              vertical-align:bottom;
              white-space:nowrap;
              mso-rotate:0;
              mso-background-source:auto;
              mso-pattern:auto;
              color:windowtext;
              font-size:10.0pt;
              font-weight:400;
              font-style:normal;
              text-decoration:none;
              font-family:Arial;
              mso-generic-font-family:auto;
              mso-font-charset:0;
              border:none;
              mso-protection:locked visible;
              mso-style-name:Normal;
              mso-style-id:0;}
         .xl21
         {mso-style-parent:style0;
         color:black;
         font-size:8.0pt;
         font-family:Arial, sans-serif;
         mso-font-charset:0;
         border-top:.5pt solid silver;
         border-right:.5pt solid silver;
         border-bottom:.5pt solid silver;
         border-left:none;}
         .xl24
              {mso-style-parent:style0;
              mso-number-format:"\#\,\#\#0\.00_\)\;\\\(\#\,\#\#0\.00\\\)";}
         .xl25
              {mso-style-parent:style0;
              mso-number-format:0%;}
         .xl26
              {mso-style-parent:style0;
              mso-number-format:"\#\,\#\#0_\)\;\\\(\#\,\#\#0\\\)";}
         .xl27
         {mso-style-parent:style0;
         background-color:#666666;
         color:#FFFFFF;
         font-size:9.0pt;     
         font-family:Arial, sans-serif;
         mso-font-charset:0;
         text-align:left;
         vertical-align:middle;
         border-top:none;
         border-right:.5 pt solid silver;
         border-bottom:.5pt  silver;
         border-left:none;
         mso-pattern:auto none;
         white-space:normal;
         .xl55
         color:black;
         font-size:8.0pt;
         font-weight:700;
         mso-style-parent:style0;
         mso-number-format:"\#\,\#\#0_\)\;\[Red\]\\\(\#\,\#\#0\\\)";
         mso-pattern:auto none;
         font-size:9.0pt;
         font-family:Arial, sans-serif;
         mso-font-charset:0;
         text-align:right;
         border-top:none;
         border-right:.5pt solid silver;
         border-bottom:.5pt solid silver;
         border-left:none;
         .xlDate{
         mso-style-parent:style0;
         mso-number-format:"yyyy\\-mm\\-dd";
         .xlDateTime{
         mso-style-parent:style0;
         mso-number-format:"yyyy\\-mm\\-dd\\ h\\:mm\\ AM\/PM";
         </xsl:comment>
         </style>
         <xml>
          <x:ExcelWorkbook>
           <x:ExcelWorksheets>
            <x:ExcelWorksheet>
              <x:Name><%=subtab1%></x:Name>
              <x:WorksheetOptions>
               <x:ProtectContents>False</x:ProtectContents>
               <x:ProtectObjects>False</x:ProtectObjects>
               <x:ProtectScenarios>False</x:ProtectScenarios>
              </x:WorksheetOptions>
            </x:ExcelWorksheet>
           </x:ExcelWorksheets>
          </x:ExcelWorkbook>
          </xml>
         </head>
    <body text="#000000" style="margin-left:5px;margin-top:5px">
          <table border="0" cellpadding="0" cellspacing="0" width="100%">
              <tr>
                  <td>
                       <table  border='0' cellpadding="0"  cellspacing='0' width="100%">
                             <tr class="xl21">
                                  <td align="left" nowrap style='font-size:11px;' colspan="<%=titleSpan%>"><b><%=subtab1%></b> -  COB  <%=irHelper.formatDate(strTradeDate)%>  </td>
                                  </tr>
                         </table>
                   </td>
                </tr>
                <tr>
                     <td> </td>
              </tr>
    <!-- Report Processing -->
              <tr>
                   <td>
                        <%=headerString%>
                        <%=contentString%>
                   </td>
              </tr>
    <%
                   }//end of if
              }//end of while
         }//end of if report_Ids     
    %>          
         </table>
    </body>
    </html>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Excel size becomes large while creating excel file in jsp using content typ

    Hi All,
    I created an excel using jsp by setting content type as excel, the size of the excel is coming nearly around 5MB. If copy the content of that 5MB excel content and paste it and created another excel directly. The size of the new excel is coming around 1 MB.
    It will be great if any body reply me as soon as possible.

    HBhagya wrote:
    I created an excel using jsp by setting content type as excelYou don't create an Excel file that way. You're just fooling the web browser that it is an Excel file so that it will try to use the associated application for that which on its turn is too forgiving that it accepts HTML.
    Look for a Java Excel API to create a real Excel file. Examples: Apache POI HSSF, JExcelAPI, OpenXML4J. Or just use the CSV file format, although you can write it yourself easily, there are API's out as well. Examples: CSV4J, JavaCSV, OpenCSV.

  • Render xml and html content type in single jsp

    I have 2 jsps, one jsp(a.jsp) is throwing content-type as HTML and other JSP(b.jsp) is throwing content-type as xml. I am making use of xsl to render the xml content in html format. But the problem is that i want to include b.jsp in a.jsp, and when i do so b.jsp doesn't make use of xsl for its rendering rather it displays the contents haphazardly.
    Plese help if somebody knows the solution.

    Below the following line ..
    <html:form action="addContact">Add this new form field..
    <html:hidden name="flag" value="0"/>Needless to say that this String variable flag should be defined in your ActionForm.
    Next, instead of ...
    <html:submit property="parameter"><bean:message key="ok.company" /></html:submit>Put this ...
    <input type="button" name="xyz" onClick="callSubmit(1);" value='<bean:message key="ok.company" />'>Then add a JS function as below ...
    <script>
    function callSubmit(flg)
         document.forms[0].flag.value=flg;
         document.forms[0].submit();
    </script>Finally in your ActionServlet, you need to find the value of the ActionForm variable flag via request.getParameter("flag").
    In case the value is set to 1, then it means that you need to send the particular row to DB. You may add additional flag values to correctly identify theparticular row which you may want to send to DB.
    Hope you got it.
    -Rohit

  • Setting Content-Type in .jspx file

    Hello,
    My application is not rendered by an HTML Browser.
    I need to set the contentType to application/x-ywidget+xml in my JSPX file.
    The content type returned is always text/xml !!!
    I have tried:
    1. To create a phaseListener and overloading before or after phase in ANY_PHASE
    FacesContext context = FacesContext.getCurrentInstance();
    ExternalContext extContext = context.getExternalContext();
    HttpServletResponse response =
    (HttpServletResponse)extContext.getResponse();
    String contentType = "application/x-ywidget+xml";
    response.setContentType(contentType);
    2. To add a new MimeType extension in web.xml and create my file under this extension
    <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.xygo</url-pattern>
    </servlet-mapping>
    <mime-mapping>
    <extension>xygo</extension>
    <mime-type>application/x-ywidget+xml</mime-type>
    </mime-mapping>

    Frank,
    Thanks you for you help.
    What i would like to do is to use a JSF library components to build YahooGO pages (Yahoo mobile widgets).
    For this my server needs to return an xml document with the application/x-ywidget+xml content type.
    Regarding you question i don't think that the target device understand the HTML.. on my mobile, it's J2ME application...
    Perhaps you can provide me some advices.
    Regards,
    Fred

  • Problem with content type

    Hi All,
    I have set the content type to text/html by using the following statement in jsp
    <%@page contentType=�text/html�%>And if I give
    out.println("<a href="aaa.do">Click here</a>"); it is showing me a link to click here that's fine.
    But my problem here is that I am using struts <bean:write name="user1" property="subject"/> tag and the data in the subject field is Click here i.e the output from the database, now its not showing the link instead displaying every thing even if the content type is set. How can I achieve this? please help me out.

    in your bean:write tag try setting the filter attribute to false, like so
    <bean:write name="xxx" property="xxx" filter="false"/>
    http://struts.apache.org/1.2.9/userGuide/struts-bean.html#write

  • Consuming Webservice in WebDynpro - Content-Type issue

    Hi,
    I am getting a shortdump when consuming WebService in WebDynpro.
    I trace it back to the class CL_SOAP_HTTP_TPBND_ROOT method GET_HTTP_HEADERS whereby the
    value = 'text/html; charset=iso-8859-1' while the constants tsrc_soap_11_http_content_type = 'text/xml' ; tsrc_soap_bx_http_content_type = 'application/x-sap-bxml' ; tsrc_soap_mtom_http_cont_type = 'application/xop+xml' ; tsrc_soap_mp_http_content_type = 'Multipart/Related'. Because of this Content-Type difference my WebDynpro application dumps?
    Any ideas how to solve this problem?
    Thanks.
    Regards,
    Amel

    hi,
    Few indroductory sessions
    /people/thomas.jung/blog/2007/12/17/consuming-services-with-abap -Consuming webservices with webdynpro.
    It is possible to create webservice in ABAP as well as in Webdynpro.
    ABAP Webservice:
    http://wiki.open-esb.java.net/Wiki.jsp?page=BAPIWEBSERVICE
    http://www.sappro.com/downloads/SAPXI.pdf
    Webdynpro Webservice:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/244e7923-0a01-0010-5887-fe0b0c6dbb8d
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/30f1b585-0a01-0010-3d96-ad0ea291c4f9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/db785a70-0701-0010-858c-eee0ec4fe1b3
    In Web Dynpro ABAP there is nothing special about calling a web service. Unlike WD Java, there are not dedicated model object types in WD ABAP. WD ABAP simply has the ability to interact with other ABAP development object types. You can call function modules, ABAP classes, even modules in old dynpro apps.
    So calling the webservice from ABAP therefore is just the process of generating the ABAP Proxy Class. This is the same process regardless of if you want to use this proxy class from WDA or any other type of ABAP development object. You can then call the proxy class from WDA just like any other type of ABAP class. There is a service wizard option in later support package levels that includes an option for ABAP Proxy classes - although it doesn't generate the proxy class it just generates the code and context for the call to an already existing proxy class. The service wizards in WD ABAP are not required however. They are just shortcut code generators and often can't even generate a complete context for a complex web service proxy - so expect to do some manual adjustment after running the wizard.
    Edited by: Mahalakshmi kothuri on Jun 1, 2008 4:17 PM

  • What's the difference between jsp and jsf?

    who can tell me what's the difference between jsp and jsf?
    I'm puzzled when I found some of the technology in jsp is so similar to the ones in jsp( javaserver page)

    Hi,
    Find the difference between JSP and JSF
    1. A developer has more control with JSP, but (should) get easier development with JSF
    2. Event handling is done differently in JSP (HTTP) and JSF (Java)
    3. The UI is designed differently (or should be at least) with JSP (markup) and JSF (components).
    4. The end product should also be defined differently - JSP page versus a JSF application.
    Is this the only thing that is need to make a decision for either or? Probably not. There are other pieces that need to be taken in account when deciding which technology to use - tools support, enough components, type of application etc.... At this point there are not enough JSF components (although there are some interesting projects underway - Ajaxfaces, Myfaces, ADF Faces, and WebChart 3d) and enterprise tools support is still limited to a few tools vendor. Looking at our ADF Faces components they are currently available as early access (not production) and demands for these components are stacking up, literally, outside my office doorstep. Although I would love to make them production - now! - it is not a viable solution since we are still checking features and fixing critical bugs.
    All this combined - not enough enterprise level components in production, lacking tools support etc... - leave customers in a vacuum where the decision is either to continue with JSP, since it is mature and has a wide developer base, or move forward with JSF not sure if the support, or the developers will be there. This is particularly sensitive to customers that need to get started now and be production by summer.
    If you are in this vacuum here are some key points promoting JSF:
    1. Fundamental unit is the Component
    2. Built in event and state management
    3. Component sets can be provided by any vendor
    4. Closer to ASP.Net or Swing development
    5. Choice of UI technology
    6. Scale up (rich clients)
    7. Scale down (mobile devices)
    8. Built into J2EE containers in J2EE 5.0 (tentative)

  • Returning content type of application/RFC822

    I have a servlet which needs to return a data stream that the browser
              shoule save as a file on the users local hard drive.
              My servlet seems to work just fine with Netscape 4.7 but IE always saves
              the original HTML Form page that called the Servlet.
              Is there a bug in WL/IE or am I doing something stupid
              here's my code - the method doing returning the data is the last one in
              this code - getResponseFromDispatch()
              Thanks
              Tom
              package com.nexterna.optiform.server.b2b;
              import javax.servlet.*;
              import javax.servlet.http.*;
              import java.io.*;
              import java.util.*;
              import javax.naming.*;
              import org.apache.log4j.Category;
              import org.apache.log4j.PropertyConfigurator;
              import org.w3c.tools.codec.Base64Encoder;
              import com.nexterna.optiform.server.ejb.dispatcher.*;
              import com.nexterna.optiform.common.*;
              import com.nexterna.ejb.usermanager.*;
              import com.nexterna.common.security.*;
              * Title: B2BInterfaces
              * Description:
              * Copyright: Copyright (c) 2001
              * Company:
              * @author
              * @version 1.0
              public class ExportResponseAsXML extends HttpServlet {
              private static final String CONTENT_TYPE = "text/html";
              /**Initialize global variables*/
              private Context jndiContext = null;
              private String poolName = "";
              private String providerURL = "";
              private String icf = "";
              private String command = null;
              private DispatcherServices dispatcher = null;
              private UserManager usermgr = null;
              private String ccode = "b2b.9284s3a41";
              private static Category cat =
              Category.getInstance(ExportResponseAsXML.class.getName());
              public void init(ServletConfig config) throws ServletException {
              super.init(config);
              try {
              InitialContext ic = new InitialContext();
              Context environment = (Context) ic.lookup("java:comp/env");
              PropertyConfigurator.configure(
              config.getInitParameter("LOG4J"));
              poolName =
              config.getInitParameter("POOLNAME");
              providerURL = config.getInitParameter("PROVIDER_URL");
              icf = config.getInitParameter("INITIAL_CONTEXT_FACTORY");
              catch (NamingException e) {
              cat.error("Exception in EJBCreate trying to lookup
              initializations");
              cat.error("Servlet Failed Initialization " + poolName + ":"
              + providerURL + ":" + icf);
              cat.error(e);
              getDispatchServices();
              getUserManager();
              if (cat.isDebugEnabled()) {
              cat.debug("Servlet Initialized " + poolName + ":" +
              providerURL + ":" + icf);
              /**Process the HTTP Get request*/
              public void doGet(HttpServletRequest request, HttpServletResponse
              response) throws ServletException, IOException {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>The servlet has received a GET. This is the
              reply.</p>");
              out.println("</body></html>");
              /**Process the HTTP Post request*/
              public void doPost(HttpServletRequest request, HttpServletResponse
              response)
              throws ServletException, IOException {
              // first we need to get the user-id/password and create a user profile
              Base64Encoder b = new Base64Encoder(request.getParameter("passwd"));
              String pass = b.processString();
              if (usermgr == null)
              log("User manager is null!");
              UserProfile up = usermgr.getUserProfile(
              request.getParameter("userid").toUpperCase(), pass);
              if ((up == null) ||
              (!ccode.startsWith(request.getParameter("controlcode")))) {
              response.setContentType("text/html");
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponse</title></head>");
              out.println("<body>");
              out.println("<p>Incorrect parameters");
              out.println("</body></html>");
              cat.error("incorrect parameters: " + up + " : " +
              request.getParameter("controlcode"));
              else {
              // there are 3 ways to export responses
              // 1. via the dispath id
              // 2. via the response id
              // 3. vis the form name and last retrieved date
              // the third one allows you to get all new responses for a form
              type
              // and for a time period.
              String rid = request.getParameter("rid");
              String did = request.getParameter("did");
              String formname = request.getParameter("formname");
              String date = request.getParameter("datefrom");
              boolean failed = false;
              if (cat.isDebugEnabled()) {
              cat.debug("rid " + rid);
              cat.debug("did " + did);
              cat.debug("formname " + formname);
              cat.debug("datefrom " + date);
              if (did != null)
              failed = getResponseFromDispatch(response, did);
              else if (rid != null)
              //failed = getResponse(response, rid);
              System.out.println("temp");
              else if (formname != null && date != null)
              //failed = getAllResponses(response, formname, date);
              System.out.println("temp");
              else {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>No Responses available.</p>");
              out.println("</body></html>");
              if (failed) {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>No Responses available due to error.</p>");
              out.println("</body></html>");
              /**Clean up resources*/
              public void destroy() {
              protected static Context getInitialContext(String purl, String picf)
              throws javax.naming.NamingException{
              cat.debug("URL: " + purl);
              cat.debug("Initial_context_factory: " + picf);
              Properties p = new Properties();
              // ... Specify the JNDI properties specific to the vendor.
              p.put(Context.INITIAL_CONTEXT_FACTORY, picf);
              p.put(Context.PROVIDER_URL, purl);
              return new javax.naming.InitialContext(p);
              protected void getDispatchServices() {
              DispatcherServicesHome home = null;
              try {
              //if (jndiContext == null)
              cat.debug("trying to get jndi - dispatcher");
              jndiContext = getInitialContext(providerURL, icf);
              cat.debug("doing lookup - dispatcher");
              Object obj = jndiContext.lookup("nexterna.DispatcherServices");
              cat.debug("getting home ref - dispatcher");
              home = (DispatcherServicesHome)
              javax.rmi.PortableRemoteObject.narrow(
              obj, DispatcherServicesHome.class);
              catch (javax.naming.NamingException ne)
              cat.error(ne);
              catch (Exception e)
              cat.error(e);
              try {
              cat.debug("home.create - dispatcher");
              dispatcher = home.create();
              catch (javax.ejb.CreateException ce)
              cat.error(ce);
              catch (java.rmi.RemoteException re)
              cat.error(re);
              catch (Exception e)
              cat.error(e);
              protected void getUserManager() {
              UserManagerHome home = null;
              try {
              if (jndiContext == null)
              cat.debug("trying to get jndi - usermanager");
              jndiContext = getInitialContext(providerURL, icf);
              cat.debug("doing lookup - usermanager");
              Object obj = jndiContext.lookup("nexterna.UserManager");
              cat.debug("getting home ref - usermanager");
              home = (UserManagerHome) javax.rmi.PortableRemoteObject.narrow(
              obj, UserManagerHome.class);
              catch (javax.naming.NamingException ne)
              cat.error(ne);
              catch (Exception e)
              cat.error(e);
              try {
              cat.debug("home.create - usermanager");
              usermgr = home.create();
              catch (javax.ejb.CreateException ce)
              cat.error(ce);
              catch (java.rmi.RemoteException re)
              cat.error(re);
              catch (Exception e)
              cat.error(e);
              protected boolean getResponseFromDispatch(HttpServletResponse resp,
              String id) {
              String s = null;
              try {
              //before we will export responses to a dispatch, the dispatch
              must be complete
              s = dispatcher.getDispatchStatusString(id);
              catch (java.rmi.RemoteException e)
              cat.error(e);
              return true;
              if (s.compareToIgnoreCase("Completed") != 0) {
              cat.debug("Dispatch status is not COMPLETED. Cannot export
              responses");
              return true;
              resp.setContentType("application/RFC822");
              resp.setHeader("Content-Type", "application/RFC822"); // set both
              ways to be safe
              resp.setHeader("Content-disposition",
              "attachment; filename=\"" + id + ".txt\"");
              cat.debug("Setting headers");
              cat.debug("Content-disposition",
              "attachment; filename=\"" + id + ".txt\"");
              HashMap responses = null;
              try {
              responses = dispatcher.getResponses(id,
              DispatcherServices.DISPATCH_ID);
              catch (java.rmi.RemoteException e)
              cat.error(e);
              return true;
              try {
              ServletOutputStream os = resp.getOutputStream();
              Iterator i = responses.values().iterator();
              while (i.hasNext()) {
              Object o = i.next();
              os.print(o.toString());
              cat.debug("Writing XML");
              cat.debug(o.toString());
              os.flush();
              os.close();
              catch (Exception e)
              cat.error(e);
              return true;
              return false;
              

              There is also a bug in IE5.5 SP0 and 1 where saving a document using the file download
              dialogue can indeed result in the HTML of the active frame being saved instead
              of the document.
              You can get IE 5.5 SP2 fix here:
              http://www.microsoft.com/windows/ie/download/ie55sp2.htm
              "Cameron Purdy" <[email protected]> wrote:
              >Hi Tom,
              >
              >I looked over the code. I think the problem is caused by the fact that
              >you
              >are doing a POST instead of a GET. IE doesn't GET anything back (OK,
              >I'm
              >totally technically wrong, but read the early HTTP specs and you'll see
              >the
              >"intent" of what I'm saying) so it just saves the current document. That's
              >my guess. Change to GET and it should work, since IE will know to save
              >the
              >incoming document.
              >
              >FWIW - You will often get more performance using a buffer of some sort
              >between your looping/writing and the response's stream.
              >
              >Peace,
              >
              >--
              >Cameron Purdy
              >Tangosol Inc.
              ><< Tangosol Server: How Weblogic applications are customized >>
              ><< Download now from http://www.tangosol.com/download.jsp >>
              >
              >
              >"Tom Gerber" <[email protected]> wrote in message
              >news:[email protected]...
              >> I have a servlet which needs to return a data stream that the browser
              >> shoule save as a file on the users local hard drive.
              >>
              >> My servlet seems to work just fine with Netscape 4.7 but IE always
              >saves
              >> the original HTML Form page that called the Servlet.
              >>
              >> Is there a bug in WL/IE or am I doing something stupid
              >>
              >> here's my code - the method doing returning the data is the last one
              >in
              >> this code - getResponseFromDispatch()
              >>
              >> Thanks
              >>
              >> Tom
              >>
              >> package com.nexterna.optiform.server.b2b;
              >>
              >> import javax.servlet.*;
              >> import javax.servlet.http.*;
              >> import java.io.*;
              >> import java.util.*;
              >> import javax.naming.*;
              >>
              >> import org.apache.log4j.Category;
              >> import org.apache.log4j.PropertyConfigurator;
              >> import org.w3c.tools.codec.Base64Encoder;
              >>
              >> import com.nexterna.optiform.server.ejb.dispatcher.*;
              >> import com.nexterna.optiform.common.*;
              >> import com.nexterna.ejb.usermanager.*;
              >> import com.nexterna.common.security.*;
              >> /**
              >> * Title: B2BInterfaces
              >> * Description:
              >> * Copyright: Copyright (c) 2001
              >> * Company:
              >> * @author
              >> * @version 1.0
              >> */
              >>
              >> public class ExportResponseAsXML extends HttpServlet {
              >> private static final String CONTENT_TYPE = "text/html";
              >> /**Initialize global variables*/
              >> private Context jndiContext = null;
              >> private String poolName = "";
              >> private String providerURL = "";
              >> private String icf = "";
              >> private String command = null;
              >> private DispatcherServices dispatcher = null;
              >> private UserManager usermgr = null;
              >> private String ccode = "b2b.9284s3a41";
              >>
              >> private static Category cat =
              >> Category.getInstance(ExportResponseAsXML.class.getName());
              >>
              >> public void init(ServletConfig config) throws ServletException {
              >> super.init(config);
              >>
              >> try {
              >> InitialContext ic = new InitialContext();
              >> Context environment = (Context) ic.lookup("java:comp/env");
              >>
              >> PropertyConfigurator.configure(
              >> config.getInitParameter("LOG4J"));
              >> poolName =
              >> config.getInitParameter("POOLNAME");
              >> providerURL = config.getInitParameter("PROVIDER_URL");
              >> icf = config.getInitParameter("INITIAL_CONTEXT_FACTORY");
              >> }
              >> catch (NamingException e) {
              >> cat.error("Exception in EJBCreate trying to lookup
              >> initializations");
              >> cat.error("Servlet Failed Initialization " + poolName +
              >":"
              >> + providerURL + ":" + icf);
              >> cat.error(e);
              >> }
              >>
              >> getDispatchServices();
              >> getUserManager();
              >>
              >> if (cat.isDebugEnabled()) {
              >> cat.debug("Servlet Initialized " + poolName + ":" +
              >> providerURL + ":" + icf);
              >> }
              >>
              >> }
              >> /**Process the HTTP Get request*/
              >> public void doGet(HttpServletRequest request, HttpServletResponse
              >> response) throws ServletException, IOException {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>The servlet has received a GET. This is the
              >> reply.</p>");
              >> out.println("</body></html>");
              >> }
              >> /**Process the HTTP Post request*/
              >> public void doPost(HttpServletRequest request, HttpServletResponse
              >> response)
              >> throws ServletException, IOException {
              >>
              >> // first we need to get the user-id/password and create a user
              >profile
              >> Base64Encoder b = new
              >Base64Encoder(request.getParameter("passwd"));
              >> String pass = b.processString();
              >>
              >> if (usermgr == null)
              >> log("User manager is null!");
              >>
              >> UserProfile up = usermgr.getUserProfile(
              >> request.getParameter("userid").toUpperCase(), pass);
              >>
              >> if ((up == null) ||
              >> (!ccode.startsWith(request.getParameter("controlcode"))))
              >{
              >> response.setContentType("text/html");
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponse</title></head>");
              >> out.println("<body>");
              >> out.println("<p>Incorrect parameters");
              >> out.println("</body></html>");
              >> cat.error("incorrect parameters: " + up + " : " +
              >> request.getParameter("controlcode"));
              >> }
              >> else {
              >>
              >> // there are 3 ways to export responses
              >> // 1. via the dispath id
              >> // 2. via the response id
              >> // 3. vis the form name and last retrieved date
              >> // the third one allows you to get all new responses for a
              >form
              >> type
              >> // and for a time period.
              >> String rid = request.getParameter("rid");
              >> String did = request.getParameter("did");
              >> String formname = request.getParameter("formname");
              >> String date = request.getParameter("datefrom");
              >> boolean failed = false;
              >> if (cat.isDebugEnabled()) {
              >> cat.debug("rid " + rid);
              >> cat.debug("did " + did);
              >> cat.debug("formname " + formname);
              >> cat.debug("datefrom " + date);
              >> }
              >> if (did != null)
              >> failed = getResponseFromDispatch(response, did);
              >>
              >> else if (rid != null)
              >> //failed = getResponse(response, rid);
              >> System.out.println("temp");
              >>
              >> else if (formname != null && date != null)
              >> //failed = getAllResponses(response, formname, date);
              >> System.out.println("temp");
              >>
              >> else {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>No Responses available.</p>");
              >> out.println("</body></html>");
              >> }
              >>
              >> if (failed) {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>No Responses available due to error.</p>");
              >> out.println("</body></html>");
              >> }
              >>
              >> }
              >> }
              >> /**Clean up resources*/
              >> public void destroy() {
              >> }
              >>
              >> protected static Context getInitialContext(String purl, String picf)
              >> throws javax.naming.NamingException{
              >>
              >> cat.debug("URL: " + purl);
              >> cat.debug("Initial_context_factory: " + picf);
              >> Properties p = new Properties();
              >> // ... Specify the JNDI properties specific to the vendor.
              >> p.put(Context.INITIAL_CONTEXT_FACTORY, picf);
              >> p.put(Context.PROVIDER_URL, purl);
              >> return new javax.naming.InitialContext(p);
              >> }
              >>
              >>
              >> protected void getDispatchServices() {
              >> DispatcherServicesHome home = null;
              >> try {
              >>
              >> //if (jndiContext == null)
              >> //{
              >> cat.debug("trying to get jndi - dispatcher");
              >> jndiContext = getInitialContext(providerURL, icf);
              >> //}
              >>
              >> cat.debug("doing lookup - dispatcher");
              >> Object obj = jndiContext.lookup("nexterna.DispatcherServices");
              >> cat.debug("getting home ref - dispatcher");
              >> home = (DispatcherServicesHome)
              >> javax.rmi.PortableRemoteObject.narrow(
              >> obj, DispatcherServicesHome.class);
              >> }
              >> catch (javax.naming.NamingException ne)
              >> {
              >> cat.error(ne);
              >> }
              >>
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >>
              >> try {
              >> cat.debug("home.create - dispatcher");
              >> dispatcher = home.create();
              >> }
              >> catch (javax.ejb.CreateException ce)
              >> {
              >> cat.error(ce);
              >> }
              >> catch (java.rmi.RemoteException re)
              >> {
              >> cat.error(re);
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >> }
              >>
              >> protected void getUserManager() {
              >> UserManagerHome home = null;
              >> try {
              >>
              >> if (jndiContext == null)
              >> {
              >> cat.debug("trying to get jndi - usermanager");
              >> jndiContext = getInitialContext(providerURL, icf);
              >> }
              >>
              >> cat.debug("doing lookup - usermanager");
              >> Object obj = jndiContext.lookup("nexterna.UserManager");
              >> cat.debug("getting home ref - usermanager");
              >> home = (UserManagerHome) javax.rmi.PortableRemoteObject.narrow(
              >> obj, UserManagerHome.class);
              >> }
              >> catch (javax.naming.NamingException ne)
              >> {
              >> cat.error(ne);
              >> }
              >>
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >>
              >> try {
              >> cat.debug("home.create - usermanager");
              >> usermgr = home.create();
              >> }
              >> catch (javax.ejb.CreateException ce)
              >> {
              >> cat.error(ce);
              >> }
              >> catch (java.rmi.RemoteException re)
              >> {
              >> cat.error(re);
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >> }
              >>
              >> protected boolean getResponseFromDispatch(HttpServletResponse resp,
              >> String id) {
              >>
              >> String s = null;
              >> try {
              >> //before we will export responses to a dispatch, the dispatch
              >> must be complete
              >> s = dispatcher.getDispatchStatusString(id);
              >> }
              >> catch (java.rmi.RemoteException e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> if (s.compareToIgnoreCase("Completed") != 0) {
              >> cat.debug("Dispatch status is not COMPLETED. Cannot export
              >> responses");
              >> return true;
              >> }
              >>
              >> resp.setContentType("application/RFC822");
              >> resp.setHeader("Content-Type", "application/RFC822"); // set
              >both
              >> ways to be safe
              >> resp.setHeader("Content-disposition",
              >> "attachment; filename=\"" + id + ".txt\"");
              >> cat.debug("Setting headers");
              >> cat.debug("Content-disposition",
              >> "attachment; filename=\"" + id + ".txt\"");
              >>
              >> HashMap responses = null;
              >> try {
              >> responses = dispatcher.getResponses(id,
              >> DispatcherServices.DISPATCH_ID);
              >> }
              >> catch (java.rmi.RemoteException e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> try {
              >> ServletOutputStream os = resp.getOutputStream();
              >> Iterator i = responses.values().iterator();
              >> while (i.hasNext()) {
              >> Object o = i.next();
              >> os.print(o.toString());
              >> cat.debug("Writing XML");
              >> cat.debug(o.toString());
              >> }
              >> os.flush();
              >> os.close();
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> return false;
              >> }
              >>
              >
              >
              

  • Tomcat always generates charset in Content-Type http header !!!

    Dear All! I need urgent help with a problem I met with and any suggestion are very appreciated!
    The problem is:
    We are using Tomcat as a web server (and JSP engine), and we would like to use a user control written in C# 2.0 on one of our pages. I've developed such component and tested it using JBuilderX (in fact it resides inside a JSP page). Everything is working fine while debugging using JBuilder, but when I tried to deploy the solution - I got a problem, my dll was not downloaded properly. Let me illustrate this with a test example. I wrote a test html page:
    <html > <head> <title>Test</title> </head> <body> <object id="MyControl" height="300" width="550" classid="http://localhost:8080/MyDLL.dll#WindowsControlLibrary1.UserControl1"> </object> </body> </html>
    When I tried to open it I did not get my control loaded. I check the headers of the server http response and found that Tomcat added the following string as
    Content-Type: application/x-msdownload;charset=ISO-8859-1
    I'm positive that in this case Content-Type should look like
    Content-Type: application/x-msdownload
    (or application/octet-stream if I would choose to define mime type for dll in server's web.xml as
    <mime-mapping> <extension>dll</extension> <mime-type>application/octet-stream</mime-type> </mime-mapping>
    - it does not matter as I understand )
    so Content-Type should not contain any charset for DLL part of response. NO charset=ISO-8859-1 !!
    But Tomcat adds it. :-( And I don't know how to prevent him doing that.
    On the other hand when I tried to open this page using Tomcat started from within JBuilder (port number in this case is different) - then everything was going good and control was downloaded to "Temporary Internet Files" and shown on the page.
    Content-Type field in this case was:
    Content-Type: application/x-msdownload
    without any charset.
    So, my question is: How to suppress Tomcat wish to add the "charset=ISO-8859-1" string to the Content-Type http response header?
    What should I do to load my test html page succesfully?
    Thanks in advance for you time and patience!
    Sincerely yours, Igor

    Back to the top

Maybe you are looking for