我正在进行SAML SSO身份验证。 我已经创建了一个servlet来生成SAML元数据,我已经部署并运行它,我得到了输出。 同时我创建了一个java类来生成具有相同代码的SAML元数据,并尝试独立运行它。我添加了我用于该servlet应用程序的相同Jar文件。 但我得到了下面给出的例外情况。任何人都可以帮我找到独立运行应用程序和使用java servlet之间的区别吗? 提前谢谢。
例外:
答案 0 :(得分:1)
在Web容器中作为servlet运行意味着所有类型的东西都在servlet容器自动提供的类路径上。
使用main()运行意味着你必须自己将所有需要的东西放在classpath上。在这方面,你得到的ClassNotFoundException应该足够清楚。
(请注意,虽然我确实说过“the”类路径,但在servlet容器中,事情通常并不那么简单。但这不是重点。另请注意,作为servlet运行,并使用为其提供的库的功能容器,甚至可能意味着你的东西不能作为一个独立的java程序运行,因为库内容是故意专门用于servlet容器的。)