我已经做了测试   javabean 没有错。。
但是放到项目里面,,导入路径没有错,就是TOMCAT启动后,打开IE运行jsp页面的时候报错(这个jsp页面是 wap 的 ,也就是用 <wml> </wml>的 ),这是报错信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception 
javax.servlet.ServletException: com/mcm/zzfw/wap/util/MD5 (wrong name: MD5)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause 
java.lang.NoClassDefFoundError: com/mcm/zzfw/wap/util/MD5 (wrong name: MD5)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1214)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3272)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
我的开发环境是  myeclipse5.0集成版  tomcat5.0  jdk1.5   
上面的报错信息是 当从其他jsp页面连接访问至本jsp页面产生的报错信息
如果直接访问本jsp页面 ,报错信息又不一样 。如下:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception 
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause 
java.lang.NullPointerException
org.apache.jsp.wap.display_jsp._jspService(display_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.这个我估计是正常的 ,因为程序里没有得到 参数 
我试过 ,不要javabean 和 取参数的地方注释掉 ,程序可以正常运行还有一个问题   myeclipse(我的是集成版5.0的)导入javabean 
还有这样的格式 ?  
<jsp:directive.page import="com.mcm.zzfw.wap.util.MD5"/>   ?
跟 <jsp:useBean id="md" class="com.mcm.zzfw.wap.util.MD5"></jsp:useBean>
有什么差别 ?  前面的格式我只知道不能在 wap中使用。。

解决方案 »

  1.   

    下面是 源码 (jsp开发的 wap ) :
    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd" ><%@ page language="java" contentType="text/vnd.wap.wml;charset=gb2312"%>
    <%@ page import="
        java.util.Date,
            java.util.Random,
        java.text.SimpleDateFormat,
        com.mcm.zzfw.wap.util.MD5,
    com.mcm.framework.connector.ejbcon.CciMappedRecord,
    com.mcm.framework.resource.cci.MappedDataModel
    "%><% response.setContentType("text/vnd.wap.wml"); %><jsp:useBean id ="translater" class="com.mcm.zzfw.wap.util.CharTranslate"/>
    <wml xml:lang="zh">
    <head>
    <meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
    <meta http-equiv="content-type" content="text/vnd.wap.wml;charset=UTF-8"/>
    </head>
    <card title="<%=translater.StringInWml2Unicode("缴纳话费")%>" newcontext="true">
    <p>
    <%! MD5 md5code = new MD5(); %>
    <%//将客户端的参数打包传给统一接入平台String svcnum = (String) request.getHeader("x-up-calling-line-id");if (svcnum == null)
    svcnum = (String) request.getParameter("x-up-subno");
            
    svcnum = svcnum.substring(2,13);String seq="02";
            SimpleDateFormat s=new SimpleDateFormat("yyMMddHHmmss");
    StringBuffer time=new StringBuffer(s.format(new Date()));
    Random r=new Random();

    for(int i=0;i<2;i++){
    time.append(r.nextInt(9));
    }

        seq=seq.concat(time.substring(0,14));

    //PhoneOwner user = (PhoneOwner)session.getAttribute("user");
    //String svcnum = (String)session.getAttribute("mobilephone");
    //String seq = sequence.getSequence();
    String Password = request.getParameter("Password");
        String Fee = request.getParameter("Fee"); SimpleDateFormat s1=new SimpleDateFormat("yyyyMMddHHmmss");
    StringBuffer time1=new StringBuffer(s1.format(new Date()));
        String PayTime=time1.substring(0,14);
        
        StringBuffer payLength=new StringBuffer("          ");
        payLength=payLength.replace(0,Fee.length(),Fee);
        String PayLen=payLength.substring(0,10);
        
        MappedDataModel md = null;
    String rtCode="00000";
    String rtFlag="1";

    md.put("__in_Version","11");
    md.put("__in_Length", "86   ");
    md.put("__in_ServiceSN",seq+"    ");
    md.put("__in_Flag","0");
    md.put("__in_Function", "103013700000");
    md.put("__in_OperNumber", svcnum+"         ");

    //A6业务号码类型
    md.put("__in_OperFlag", "1");
    md.put("__in_SalePoint", "000000");
    md.put("__in_SaleMan", "00000000");
    //A9包编号
    md.put("__in_PackageFlag","00001");
    md.put("__in_LastFlag","1");
    md.put("__in_ReturnCode", "00000");

    // md.put("__in_PackegEnd", "0x1a");

         md.put("__in_PassWord",md5code.getMD5ofStr(Password));
    md.put("__in_Fee",PayLen);
    md.put("__in_PayDate",PayTime);

    //ucixInterface.callService(md);

    //rtFlag = md.getString("__out_Flag");
    //rtCode = md.getString("__out_ReturnCode");
    if("1".equals(rtFlag) && "00000".equals(rtCode)) {
    %>

    <%=translater.StringInWml2Unicode("缴纳话费成功")%><br/> <%=translater.StringInWml2Unicode("您本次缴纳人民币")%>$(Fee)<%=translater.StringInWml2Unicode("元")%>
    <br/>
    <a href="/zzfw/wap/menu.jsp"><%=translater.StringInWml2Unicode("返回菜单")%></a><br/>
    <% 
    }  else{
    %> <%=translater.StringInWml2Unicode("缴费失败")%><br/>

    <% 
    String re=null;
    if(rtCode.equals("00102")) 
    re="密码错误";
    if(rtCode.equals("00606")) 
    re="数据库更新操作出错";
    if(rtCode.equals("00670")) 
    re="没有绑定银行卡";
    %>

    <%=translater.StringInWml2Unicode("失败原因")%>[<%=translater.StringInWml2Unicode(re)%>]
    <br/>
    <a href="wap_login.jsp"><%=translater.StringInWml2Unicode("返回缴费页")%></a><br/>
    <a href="/zzfw/wap/menu.jsp"><%=translater.StringInWml2Unicode("返回菜单")%></a><br/><% } %> </p>
    </card>
    </wml>
      

  2.   

    如果我没记错。
    <jsp:directive.page import="com.mcm.zzfw.wap.util.MD5"/> 
    是 <%@ page import="com.mcm.zzfw.wap.util.MD5"/>的xml写法。
    不等于
     <jsp:useBean id="md" class="com.mcm.zzfw.wap.util.MD5"></jsp:useBean>
    ^-^
    前面一种不能在wml中使用?。