JBoss4 应用服务器Web开发人员参考手册(4):使用HTTPS

【中间件】JBoss是什么?JBoss与Tomcat的区别 在Native组件的支持下,动态运行不会受到任何影响,而静态资源的访问利用了操作系统本身提供的0拷贝传送,CPU消耗降低,响应时间缩短,吞吐率大大提高,混合的连接模式支持最大达到10000个并发客户端的同时访问,与Apache Web服务器相当。JBoss Web服务器具有原生特性和强大的可扩展性,可支持多种并非基于Java的服务器内容处理技术,可同时运行JSP, Servlet, Microsoft .NET , PHP 及 CGI,为其提供一个单一的、高性能的企业级部署平台。 阅读详情

为嵌入的Tomcat servlet容器配置基于SSL的HTTP的方法有许多,区别在于使用是否用JBoss特有的connector socket factory, 它能够从JBossSX SecurityDomain获得JSSE的服务器证书信息. 它需要使用org.jboss.security.plugins.JaasSecurityDomain MBean建立一个SecurityDomain. 下面的server.xml 配置文件展示了使用这种方法仅建立SSL connector的配置:

 

<Server>
    <Service name="jboss.web" className="org.jboss.web.tomcat.tc5.StandardService">
 
        <Connector port="8080" address="${jboss.bind.address}" maxThreads="150"
            minSpareThreads="25" maxSpareThreads="75" enableLookups="false"
            redirectPort="443" acceptCount="100" connectionTimeout="20000" 
            disableUploadTimeout="true"/>
 
        <Connector port="443" address="${jboss.bind.address}" maxThreads="100"
            minSpareThreads="5" maxSpareThreads="15" scheme="https"
            secure="true" clientAuth="false"
            keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
            keystorePass="rmi+ssl" sslProtocol="TLS"/>
 
        <Engine name="jboss.web" defaultHost="localhost">
            <Realm
                className="org.jboss.web.tomcat.security.JBossSecurityMgrRealm" 
                certificatePrincipal="org.jboss.securia.Log4jLogger"
                verbosityLevel="WARNING" category="org.jboss.web.localhost.Engine"/>
            <Host name="localhost" autoDeploy="false" deployOnStartup="false" 
                  deployXML="false">
                <DefaultContext cookies="true" crossContext="true" override="true"/>
            </Host>
        </Engine>
    </Service>
</Server>

该配置包含了一个JaasSecurityDomain, 但是因为该描述信息没有作为包含chap8.keystore的SAR包进行部署, 你需要将chap8.keystore拷贝到server/default/conf目录. 你可以使用HTTPS通过URL: https://localhost/jmx-console访问 JMX console web 应用来测试该配置 .

注意: 如果你的运行系统需要特殊权限来开通1024以下的端口,可以方便地将端口设置为1024以上的数字,因此端口8443经常被使用.

配置的属性信息如下:

  • algorithm: 表示对证书编码时使用的算法. 如果不指定,缺省值为 SunX509.

  • className: 表示SSL server socket factory 实现类的全称. 在这里必须指定 org.apache.coyote.tomcat4.CoyoteServerSocketFactory. 使用其它的socket factory不会出现错误,但是服务器的socket将不会使用SSL.

  • clientAuth: 如果将该属性设置为true,SSL协议栈就会在接收客户连接之前对客户的证书进行证书链验证。缺省值为false, 在这种情况下将不需要证书链连,除非客户请求被CLIENT-CERT验证安全限制保护的资源。.

  • keystoreFile: 表示需要加载的服务器证书存储的文件路径. 缺省情况下, 证书的文件路径是操作系统Tomcat运行home目录下的.keystore文件.

  • keystorePass: 表示从指定的keystore文件中访问服务器证书时需要使用的密码. 缺省值为 changeit.

  • keystoreType: 指定用于存储服务器证书的keystore文件类型. 如果不指定, 缺省值为 JKS.

  • protocol: 指定SSL协议使用的版本. 如果不指定, 缺省值为 TLS.

需要注意的是,如果试着使用自己签发的证书通过HTTPS访问进行SSL配置的测试, 浏览器应该会显示一个警告对话框,表示不能信任签发服务器证书的证书机构 . 例如, 当测试第一个配置例子时,, IE 5.5 就会显示提示服务器证书信息的初始安全警告对话框 Figure 4.1, “The Internet Explorer 5.5 security alert dialog.”. Figure 4.2, “The Internet Explorer 5.5 SSL certificate details dialog.” . 这个警告信息非常重要,因为任何人都可以随心所欲地签发包含任意信息的证书 . 只有通过确认服务器证书是否为信任的第三方签发,才能确保所连接的服务器和它自己代表的机构一致。.

The Internet Explorer 5.5 security alert dialog.

Figure 4.1. The Internet Explorer 5.5 security alert dialog.

The Internet Explorer 5.5 SSL certificate details dialog.

Figure 4.2. The Internet Explorer 5.5 SSL certificate details dialog.

 
Java 应用服务器详解:JBoss/WildFly/WebLogic/Tomcat Java 应用服务器在企业开发环境中扮演着至关重要的角色。它们不仅提供运行环境,还支持大量的 API 和服务,简化了 Java EE 应用的开发和管理。本博客将深入探讨流行的 Java 应用服务器,包括 JBoss/WildFly、WebLogic 和 Tomcat。 阅读详情

相关推荐

jboss4开发指南

jboss4 开发指南,指引大家了解jboss并逐渐熟悉jboss的强大之处

Jboss配置https

Jboss配置https 1、生成服务器端证书keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650

zyw19871007的专栏 1376

JBoss 4.x使用

基于JBoss 4.x的J2EE 1.4应用 开发指南

jboss配置https

和第三方系统对接,对方要求使用HTTPS协议,就简单地看了一点点 首先需要生成一个keystore keytool -genkey -alias kyfxbl -keyalg RSA -keystore f:\kyfxbl.keystore -validity 3650 -alias是指定一个别名,类似于Map的key -keyalg是指定算法,默认是DSA -keystore是生成的文件往

kyfxbl 1257

jboss配置https环境

jboss服务器配置https环境的详细方法

JBoss4.0中文版.pdf

包括jboss服务器快速手,实例,j2ee之web服务等...

配置jboss4.2.3GA启用SSL

转帖保存 配置jboss的HTTP请求走SSL(HTTPS协议) l生成keystore文件 用keytool生成server.keystore文件: 进入命令行 C:\Documents and Settings\new> keytool -genkey -alias tc-ssl -keyalg RSA -keystore c:\server.key...

weixin_30344131的博客 404

Linux中断子系统分析之(四):驱动程序申请中断

中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理。 如果中断不分上下半部处理,那么意味着只有等上一个中断完成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,影响系统性能。 中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开,这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。为了进

m0_46525308的博客 1225

在JBoss服务器上安装SSL证书教程

在JBoss服务器上安装SSL证书教程: 首先你得有SSL证书,没有的可以到腾讯云和阿里云申请免费SSL证书(参考:阿里云、腾讯云免费SSL域名证书申请教程),或者购买SSL证书。 1、确认JBoss版本,建议您将SSL证书部署在JBoss 7.1.1及以上版本。 2、修改服务端口。进入JBoss主目录中的standalone/configuration,修改standalone.xml文件...

云计算分享家 994

YOLOv8-seg模型后处理实战:从输出解析到mask生成的完整流程

本文详细解析了YOLOv8-seg实例分割模型的后处理完整流程,从理解output0与output1的双输出结构,到实现检测框的置信度过滤、坐标转换与NMS,再到核心的掩膜生成数学原理与矩阵乘法实现。文章深入探讨了如何将掩膜系数与原型掩膜库结合,生成像素级分割结果,并提供了掩膜上采样、边缘优化、性能提升及解决实际应用难题的实战方案。

xgboost6farmer的博客 317

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 232

jboss支持https的配置

http://blog.chinaunix.net/uid-20081651-id-1735987.html 根据网上的资料很容易就配通了linux系统下jboss支持https协议。 我们使用的jboss版本是3.2.7,jdk是jrocket 1.5.0,这些版本内部已经支持ssl,不需要增加任何补丁。 步骤: 1、在jdk的bin目录下,运行keytool,生成证书: ...

BusyMonkey 5168

YOLOv8模型INT8量化实战:解决sigmoid输出归零的坑(附代码修改)

本文详细介绍了YOLOv8模型INT8量化过程中遇到的sigmoid输出归零问题及其解决方案。通过修改模型导出代码、优化ONNX量化流程,并提供完整的部署优化技巧,帮助开发者在边缘计算设备上实现高效的模型推理。文章还包含量化效果验证和常见问题排查方法,助力开发者快速解决实际部署中的难题。

vvv99的博客 252

Jboss配置HTTPS说明(转)

转自:http://blog.163.com/rk_lxy/blog/static/297454842008422104653884/配置jboss的HTTP请求走SSL(HTTPS协议) l         生成keystore 文件 用keytool生成server.keystore文件: 进入命令行 C:\Documents and Settings\new> keytool -

Edison Xu 3887

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。由于机考时题目顺序是打乱的,本文题目所标序号只为区分不代表实际顺序。综合知识。

一几文的编程学习笔记。 9280

NVIDIA A100驱动及CUDA安装指南

NVIDIA A100驱动及CUDA安装指南:详细介绍了在Ubuntu系统下安装A100显卡驱动和CUDA工具包的完整流程,包括环境准备、驱动安装、CUDA配置及性能优化建议。特别推荐猿界算力平台提供开箱即用的A100算力租赁服务,具备专业团队支持、灵活租期和实惠价格等优势。文末通过PyTorch测试验证了A100设备的可用性,展示了80GB显存的强大计算能力。

2401_89353317的博客 1511

JBoss配置HTTPS安全连接

1、用keytool生成server.keystore文件: C:\Documents and Settings\new>keytool -genkey -alias tc-ssl -keyalg RSA -keystor e c:\server.keystore -validity 3650 生成完后放入C:\jboss-3.2.6\server\default\conf中。 2

软件架构师之路 9094

【MATLAB】工业传送带速度闭环控制与张力联合仿真

本文基于MATLAB/Simulink平台,构建了工业传送带速度闭环控制与张力联合仿真系统。通过搭建驱动模块、机械传动模块、检测模块和控制模块,实现了速度与张力的协同控制。采用双PID调节器分别整定速度与张力参数,经联合调试后系统性能良好:速度跟踪误差小于±0.03m/s,张力波动控制在±30N内,负载扰动恢复时间仅0.3秒。研究提供了从建模到参数优化的完整工程方案,可直接应用于课程设计或工业实践,有效解决了传送带运行中速度偏差与张力波动的协同控制难题。

unber的博客 78

Jboss配置HTTPS说明

Jboss配置说明<br />配置jboss的HTTP请求走SSL(HTTPS协议)<br /><!--[if !supportLists]-->l         <!--[endif]-->生成keystore 文件<br />用keytool生成server.keystore文件:<br />进入命令行<br />C:/Documents and Settings/new><br />keytool -genkey -alias tc-ssl -keyalg RSA -keystore c:/serv

sail_zhang的专栏 4731

MacBook Air老本重装系统

手里的这个本子型号是A1466,cpu i5,4G内存,硬盘ssd 120G。 重装系统可以在原系统上升级到更新版本,或者用U盘安装。 先确定,这个本子可以安装什么系统。 最权威的信息当然是apple的官网,地址:https://support.apple.com/zh-cn/HT211683 在“检查兼容性”中,可以依次检查每个系统兼容的硬件型号。Mojave是A1466能安装的最高版本。 确认兼容性后,下一步就是下载安装文件。还是这个页面稍下面一点可以找到。 这里告诉用户文件可以在什

bigwood99的博客 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JBoss 4.0.5 应用服务器WEB应用配置

 [翻译] JBoss 4.0.5 应用服务器WEB应用开发参考第一章 Tomcat服务Tomcat 5.5支持Servlet2.4和JSP2.0规范,Tomcat作为一个可布署的服务jbossweb-tomcat-55.sar发布在deploy目录。因为采用展开目录的发布形式,很容易检查和更新嵌入的Tomcat实例的配置信息。主要的服务文件是 META

jiacheng15cn的专栏 3673

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

如何将java web项目从http变更为https协议以Tomcat和JBOSS为例

1.首先通过本地安装的jdk生成SSL证书 执行命令: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\apache-tomcat-7.0.82\tomcat.keystore" -validity 3650 指令详解: 1.-storetype 指定密钥仓库类型 2.-keyalg 生证书的算法名称,RSA是一种...

qq_35565675的博客 2103

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JBoss 4应用服务器Web开发人员参考手册(2):server.xml

前面介绍的jboss-service.xml文件用来控制Tomcat服务的集成,但是Tomcat有单独控制自身运行的配置文件 。这就是在jbossweb-tomcat55.sar 目录中能够找到的server.xml描述文件。server.xml文件没有正式的DTD或者schema定义,因此我们只能说明一些主要用到的配置元素。Server是server.xml的顶级元素,它应该包含一个表示整个

JBossWeek的专栏 4624

JBOSS简介及安装部署

一.JBOSS简介     JBOSS是一个免费的开放源代码的Web应用服务器,技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可。其运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等开发应用系统常用的功能。 二.JBOSS和tomcat比较      Tomcat:作为一个小型的轻 量级应用服务器,Tomcat在中小型系

御前两把刀的专栏 1368
上一篇: JBoss4 应用服务器Web开发人员参考手册(3):context.xml
下一篇: JBoss4 应用服务器Web开发人员参考手册(4):使用HTTPS
JBossWeek
博客等级 码龄20年 41粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值