WEB开发异常:java.lang.ClassNotFoundException: Serveltone

2024-12-12 22:02:23
推荐回答(2个)
回答1:

您好,您可以参考以下方法:

  1. BEA WebLogic Portal 9.2是面向基于Java应用开发的一款应用服务器。安装程序包括BEA Workshop for WebLogic 。
    Platform,这是用于迅速构建Web服务的一种IDE。我们决定使用WebLogic,因为它在业界的应用很广泛,而且易于构建Web服务。

  2. 内容导航

    Crosscheck Networks SOAPSonar是一个Web服务测试客户程序,它使用WSDL,并且可以为目标Web服务生成功能、性能、互操作性和漏洞等测试。 未保护的Web服务。 第一个Web服务根本没有防范不利条件的机制。如以下代码所示,这个基本方法读入几个双精度输入,然后除数除被除数,返回作为结果的双精度值。

  3. Code highlighting produced by Actipro CodeHighlighter 
    (freeware)
    http://www.CodeHighlighter.com/

    package mathservice;

        import javax.jws.*;

        @WebService

        public class DivideWS 
    {

        @WebMethod

        public double nakedDivide(double dividend, double divisor)

        {

        return dividend/divisor;

        }

        }

测试显示了nakedDivide(…) Web方法的行为:正面测试显示,Web服务对输入数字进行了正常除法。
如果输入了零除数,应用服务器就会进行恰当处理,并返回INF值;如果被除数或者除数什么也没有输入,就会显示详细的堆栈跟踪,还有关于XML处理内部的列表信息,譬如串行化器、SOA服务器协议处理程序和实现平台。

一般而言,堆栈跟踪信息对Web服务使用者毫无用处,使用者也没有多少办法可以从这样的通用、冗长的异常中恢复过来。这不像一组简单的文档返回代码发送到客户程序、从除以零或者空值异常中轻松恢复过来。发送到客户程序的堆栈跟踪信息不但毫无用处、代码上不可执行,它还可能会把实现细节传送给外部使用者,有可能被人进一步利用。

防御性Web服务:

下面的代码片显示,防御性Web服务defensiveDivide(…)建立在前一个方法nakedDivide(…)上的基础上,添加了简单的检查机制查看除数是不是零。这可以确保除以零错误不会出现。如果除数是零,该方法就会返回0,那样调用程序就可以从不合适的零除数输入中恢复过来。在这种方法中,编程人员预料到了边界条件,编写防御性代码来处理它。

Code highlighting produced by Actipro CodeHighlighter 
(freeware)
http://www.CodeHighlighter.com/

@WebMethod

    public double defensiveDivide(double dividend, double divisor)

    {

    if (divisor 
!= 
0)

    return dividend/divisor;

    else

    return 0;

    }

几个正面和负面测试很快显示了defensiveDivide(…) Web方法的行为:正面测试显示,Web服务对输入数值进行了正常的除法;如果输入了零除数,不像nakedDivide(…)会在试图进行除法运算后,返回表示无限大的INF值,defensiveDivide(…)返回的是编程人员定义的显式0.0错误值,连除法运算试都不试一下;如果被除数或者除数什么也没有输入,就像nakedDivide()那样,就会显示详细的堆栈跟踪,还有关于XML处理内部的列表信息,譬如串行化器、SOA服务器协议处理程序和实现平台。

测试结果显示,虽然已经恰当地预料到并处理了除以零场景,但除此之外,防御性错误处理并没有多大作为。不过,编程人员只要避免用坏数据进行计算,就可以让defensiveDivide()比nakedDivide()更有效率。预料意味着可以提高程序效率。

容器安全的Web服务

下面,相除方法经过了改动,把字符串值作为输入值,而不是前几个例子中所预料的双精度值。这样,开发人员就可以通过编码来控制输入值的正确性,而不是让方法抛出运行时异常、让容器去处理。如果让容器来处理异常,编程人员就失去了控制权,对编程人员可以处理的预料到的边缘条件而言更是如此。

字符串除数和被除数先用try-catch代码块转换成双精度数。如果转换不成功,catch代码块就会找出异常,返回零值。转换成功后,检查除数是不是零值;
如果值不是零,运算就成功进行。

Code highlighting produced by Actipro CodeHighlighter 
(freeware)
http://www.CodeHighlighter.com/

@WebMethod

    public double defensiveStringDivide(String dividend, String 
divisor)

    {

    double dDividend;

    double dDivisor;

    try

    {

    dDividend = 
Double.parseDouble(dividend);

    dDivisor = 
Double.parseDouble(divisor);

    }

    catch (Exception 
e)

    {

    return 0;

    }

    if (dDivisor 
!= 
0)

    return dDividend/dDivisor;

    else
    return 0;

    }

测试显示了defensiveStringDivide(…)Web方法的行为:正面测试显示,Web服务对输入数值进行了正常的除法;
如果输入了零除数,像defensiveDivide(…)一样,该方法也是表现正常,不会发送带堆栈跟踪的SOA错误。该方法恰当地返回零值给Web服务使用者;
如果被除数或者除数什么也没有输入,或者输入非数值字符,该方法就会试图转换它,但转换失败,catch代码块会处理异常,然后返回零值。

defensiveStringDivide()方法比前两种方法来得严格。该方法可以显式防范用户输入随意的非数字值。它可以控制异常处理,并且防止利用非数值输入生成堆栈跟踪。借助防御性编码,编程人员就可以通过容器的异常处理结构来防止信息泄漏。使用这种防御性方法可以降低通过Web服务途径提取程序、解析程序和容器内部的可能性。

Web前端学习内容与要求

  • 首先,做前端的话,你的眼光要看远。现在技术更新很快,如果你还在用什么幻灯片,灯箱效果,那你真不是做前端的料。只能说你是应付人员,或者说就是只会就应用别人写的效果代码而已

  • 其次,要提升自己的价值。不要学会div+css,就不想学其它的技术了,要时时苛刻想到自己的危险处境,像懂div+css的人太多了,网上教程3天学会div+css,10天精通的资料一天堆。多去学点更多能提现你自身价值的东西,比如除div+css之外,可以学习一些后台语言php,java之类的

  • 最后,分享,就是自己的价值要表现出来。中国没有jquery,没有smarty,这么好用的东西,中国缺的并不是能力,是分享。所有要学分分析,比如论坛,博客等信息量大的地方,不仅可以学到你不知道的,也可以增加自己的知识积累

回答2:

  你好,没有找到这个类Serveltone,是启动出错吗?web.xml中配置了这个Serveltone类吗?你可以检查一下这个Serveltone类的路径是否正确,包名+类名

  希望可以帮助到你