在编写Servlet时,我发现了一种方法
Since:
Servlet 3.1
我猜想如果我可以使用NetBeans的自动提示是因为我具有那个Servlet版本。但是我找不到地方确认这一点。我正在使用glassfish4.1作为容器。如果我去mypathtoglassfish4.1\glassfish\modules
那里,我可以javax.servlet- api.jar
在清单中看到:
Implementation-Version: 3.1.0
那是检查的正确方法吗?我对能够告诉同事“去那个罐子并检查该属性”特别感兴趣,因此我确定我的代码将在他们的服务器上运行。
另外,我找到了一个网页Oracle GlassFish Server
3.1应用程序开发指南
,上面写着:“
GlassFish Server支持Java Servlet Specification 3.0版。” 但显然对于Glassfish
3.1,我找不到每个版本的Glassfish之一(甚至不是我的-4.1)
看一下Java
EE版本
。Servlet(以及JSP,JSF,EJB,JPA等)版本与Java
EE版本紧密相关。
查看服务器主页/文档的显示方式。对于GlassFish,当前是(带有4.1):
全球首个Java EE 7应用服务器
因此,它是Servlet 3.1。
但是, 尽管 很大,但这是一回事。第二件事是,Web应用程序的web.xml
版本也起作用。并非所有人都知道。
如果您的Web应用web.xml
程序声明为符合Servlet 3.1,如下所示,
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- Config here. -->
</web-app>
那么您的web应用也将真正以Servlet 3.1方式运行。
但是,如果它被声明为符合Servlet 3.0(例如以下甚至更旧),
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- Config here. -->
</web-app>
那么您的Web应用程序将以Servlet 3.0兼容方式运行,即使将其部署到Servlet
3.1兼容容器中也是如此!上面的内容影响了ServletContext#getMajorVersion()
和getMinorVersion()
,因此它们实际上不涉及容器,只涉及Webapp本身。
如果您的Web应用程序web.xml
包含一个<!DOCTYPE>
,而不管DTD和版本如何,那么即使声明了更新的XSD,它也将以Servlet
2.3兼容方式运行!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "java.sun.com/dtd/web-app_2_3.dtd">
<web-app
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- This is WRONG! The DOCTYPE must be removed! -->
</web-app>
我的glassFish服务器有问题。当我部署项目时,他们会向我显示以下消息: 构建impl。xml:1045:尚未部署该模块。 我一直在重新启动netbeans,并将debugmode更改为TRUE,但问题仍然存在。 这是build impl生产的1045线。xml: 我使用: macOS塞拉利昂10.12 NetBeans 8.2 GlassFish 4.1.1 JDK 8
我在C:\glassfish3目录中安装了GlassFish服务器。 当我在C:\glassfish3\bin目录中键入“dir”时,文件就会被列出。 但是当我输入asadmin时,我得到“系统找不到指定的路径”。 可能出了什么问题? 如何启动GlassFish服务器? --编辑-- 此外,在安装后,我得到: 创建域 执行命令:C:\glassfish3\glassfish\bin\asadmin
每当我从Netbeans运行我的项目时,都会出现以下错误: 以下是日志输出:
我已经扫描了SO,发现没有关于如何在glassfish上安装letsencrypt.orgSSL证书的详细说明,特别是在本教程中,我将使用glassfish 4.1.2 build 1。经过大量的尝试和错误,我终于能够整理出以下指南。所以我希望可以问和回答我自己的问题。 在本教程中,我将使用Ubuntu16.04 LTS服务器,从我的Ubuntu16.04 LTS桌面访问Shell。
问题内容: 我可以确定是否可以看到JAVA OPTS参数。我想使用Jconsole监视hornetq服务器,所以我需要端口号。 我记得前一段时间连接到它时使用过一些命令,例如java grep等。 问题答案: 如果知道进程号,则可以使用netstat查找程序正在侦听的端口,例如 JMX侦听器的常规端口是1099。
我们在netbeans上有一个java应用程序,它使用Glassfish Server4.1。我们最近进行了一次扫描,我们得到了建议,我们应该将Glassfish服务器更新到最新版本,因为V4.1有漏洞问题。我下载了Glassfish Server5.0,在zip中,我解压缩并在文件夹中导航。我可以访问管理控制台,但是当我尝试从netbeans中的工具添加Glassfish服务器时,它告诉我,这不