用TOMCAT和AXIS部署一个简单的计数器服务,客户端用JSP访问时出错,如下请问什么原因,怎样修改,开发环境是eclipseHTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 6 in the generated java file
Only a type can be imported. com.wallimn.WebService.CounterServiceClient resolves to a packageAn error occurred at line: 3 in the jsp file: /WebRoot/test.jsp
CounterServiceClient cannot be resolved to a type
1: <%@ page language="java" import="com.wallimn.WebService.CounterServiceClient" pageEncoding="GB18030"%>
2: <%
3: CounterServiceClient client = new CounterServiceClient();
4: client.getCounter("hello","123");
5: %>
6: 
An error occurred at line: 3 in the jsp file: /WebRoot/test.jsp
CounterServiceClient cannot be resolved to a type
1: <%@ page language="java" import="com.wallimn.WebService.CounterServiceClient" pageEncoding="GB18030"%>
2: <%
3: CounterServiceClient client = new CounterServiceClient();
4: client.getCounter("hello","123");
5: %>
6: 
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

解决方案 »

  1.   

    Only a type can be imported. com.wallimn.WebService.CounterServiceClient resolves to a package 可能有两个原因: 1. CounterServiceClient不是一个类
                     2. jsp找不到改类,你看看是不是有包没有放到lib下,就是上面这个类所在的jar是不是放到lib下了
      

  2.   

    我自定义的counterserviceclient类的源代码如下:
    package com.wallimn.WebService;//调试请注意包名
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;public class CounterServiceClient {
    private String counterarr[];public boolean getCounter(String CounterName, String password) {
    boolean res = false;
    try {
    String endpoint = "http://localhost:8080/axis/WsCounterByWallimn.jws";//此处注意,请与你的开发环境匹配
    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new java.net.URL(endpoint));
    call.setOperationName("Counter");
    // 填写你要调用的方法名称
    String counter = (String) call.invoke(new Object[] { CounterName, password });
    counterarr = counter.split(";");
    res = (counterarr != null && counterarr.length == 4);
    }
    catch (Exception e) {
    }
    return res;
    }public String getDc() {
    return counterarr[3];
    }public String getMc() {
    return counterarr[1];
    }public String getTc() {
    return counterarr[0];
    }public String getWc() {
    return counterarr[2];
    }
    }
    我已经把包含有CounterServiceCLient的com/wallimn/WebService放如了LIB下,还是没用,是否要把它做成.JAR文件
      

  3.   

    class文件放到/WEB-INF/classes下,jar放到/WEB-INF/lib下
      

  4.   

    .class文件放到/WEB-INF/classes下面
    .ja才是r放到/WEB-INF/lib下,.class文件放到/WEB-INF/lib下是没用的
      

  5.   

    我把那个自定义类打包成.JAR文件放入lib后,访问又出现了如下错误:
    HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)root causejava.lang.NullPointerException
    com.wallimn.WebService.CounterServiceClient.getTc(CounterServiceClient.java:35)
    org.apache.jsp.WebRoot.test_jsp._jspService(test_jsp.java:78)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
      

  6.   

    com.wallimn.WebService.CounterServiceClient.getTc(CounterServiceClient.java:35) CounterServiceClient类 getTc方法有一个NullPointerException 
    这个错误在 CounterServiceClient.java 第35行这是代码的问题了,CounterServiceClient对象已经new成功了,也不是抛的jsp页面编译异常
      

  7.   

    CounterServiceClient cannot be resolved to a type
    1: <%@ page language="java" import="com.wallimn.WebService.CounterServiceClient" pageEncoding="GB18030"%>
    2: <%
    3: CounterServiceClient client = new CounterServiceClient();
    4: client.getCounter("hello","123");
    5: %> 昏???问楼主一个问题:
    你的jsp中有没有import进CounterServiceClient这个类???????????????????
      

  8.   

    将 客户端类 放入 web-inf/class文件夹下  ,就可以编译成功。然后提示 getdc有错 。  写这源代码的人能不能确定 是可以完全正确的运行的啊  头痛!