Skip to content

Commit

Permalink
improve java
Browse files Browse the repository at this point in the history
  • Loading branch information
chendelin1982 committed Apr 18, 2024
1 parent 3b840fd commit 8baf459
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 142 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
#if: false # stop steps
if: false # stop steps
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@v3
Expand Down
1 change: 1 addition & 0 deletions docs/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ Websoft9 是一个以应用为中心的,它支持各种全面的应用的自
| [指南](./guide) | 应用生命生命周期管理,域名配置等产品通用操作 |
| [管理员](./admin) | 升级、备份等运维指南,数据、存储和安全配置指南 |
| [应用](./apps) | 200+ 个开源应用的快速入门和配置指南 |
| [程序环境](./runtime) | 自行部署 Java、Python、Node.js、PHP、Go、Ruby和 .NET 程序的环境 |
| [使用场景](./guide/solution) | 基于多个开源应用的集成化解决方案,满足行业和业务场景需求 |
| [购买与支持](./business) | 付费使用 Websoft9 产品,获得企业级商业支持服务 |
| [故障问题](./faq) | 常见的技术技术和故障问题 |
Expand Down
65 changes: 0 additions & 65 deletions docs/runtime/Java/advanced.md

This file was deleted.

41 changes: 15 additions & 26 deletions docs/runtime/Java/openjdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,28 @@ import Meta from '../../apps/_include/openjdk.md';

<Meta name="meta" />

## 入门指南{#guide}
## 部署网站{#deploy}

### 部署应用{#sample}
### 手动部署

#### war包部署
下面以 [Jenkins](https://www.jenkins.io) 为例,描述应用安装过程:

下面通过常见的 Java 应用 [Jenkins](https://www.jenkins.io) 为例,描述应用安装过程:
1. Websoft9 控制台安装 JDK 环境(Jenkins 仅仅支持 OpenJDK 17,21)

> Jenkins 仅仅支持 OpenJDK 17,21
2. 进入 OpenJDK 容器,分别运行如下命令:

1. Websoft9 控制台安装 OpenJDK 运行环境
```
#1 下载 war 包
curl -L -O https://get.jenkins.io/war/latest/jenkins.war
2. 进入容器,安装 Jenkins,命令如下:
```
cd /home/openjdk/app && curl -L -O https://get.jenkins.io/war/latest/jenkins.war
```
#2 直接运行程序或在后台运行程序(取其一)
java -jar jenkins.war --httpPort=8080
nohup java -jar jenkins.war --httpPort=8080 > output.log 2>&1 &
```

3. 应用被安装在路径: **/home/openjdk/app/jenkins.war**
3. 此时,即可访问此 Web 程序

4. 在编排修改 **docker-comopse.yml**,使 **command** 生效
```
- command: sh -c "cd /home/openjdk/app && java -jar jenkins.war"
```
### 自动部署

5. 重建应用生效后即可访问 Jenkins
参考 Web Runtime 通用的文档章节:[自动部署指南](./runtime#auto)


## 配置选项{#configs}

## 管理维护{#administrator}

## 故障

#### Jenkins 无法正常启动?

Jenkins 仅仅支持 OpenJDK 17、21,其他版本的 OpenJDK 无法运行。
98 changes: 52 additions & 46 deletions docs/runtime/Java/readme.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,68 +3,74 @@ sidebar_position: 1
slug: /java
---

# 指南
import DocCardList from '@theme/DocCardList';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';

## 场景
# Java

### Maven 使用{#maven}
## 关于

下面是一个 Maven 构建的范例:
Java 是一个老牌的跨平台语言。Java 归属 Oracle 之后,开源社区各种力量角逐,并蓬勃发展,慢慢的出现多个 JDK 分支和各种有特色的应用程序服务器和中间件。

```
mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=trucks -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
```
所以,Websoft9 的 Web Runtime 在设计时,充分考虑了这个因素,让用户有更多合适的选择。

### Web 框架{#framework}
## 环境选择与部署程序

### JDK 版本变更{#changeversion}
Websoft9 提供的所有 Java 程序环境都运行了 JDK 或 JRE,即理论上都可以运行 Java 程序。

## 故障排除{#troubleshoot}
而大部分时候,用户需要运行 Java Web 程序,它的运行逻辑见下图:

## 参数
![](https://libs.websoft9.com/Websoft9/DocsPicture/zh/java/java-jvmweb-websoft9.png)

### 路径{#path}
如果是 Java Web 程序,那么就需要类似应用服务器等更多组件。

Java 安装目录: */data/java*
Java 日志目录: */data/logs/java*
Tomcat 安装目录: */usr/local/tomcat*
Tomcat 配置文件: */usr/local/tomcat/conf/server.xml*
Tomcat 建议网站目录: */data/wwwroot/*
Tomcat 日志目录: */var/log/tomcat*
下面我们推荐根据实际场景做出最合适的选择:

### 命令行{#cmd}
- 如果运行一个包含 Web 服务器的 war 程序包,那么请选择 OpenJDK
- 如果运行一个不包含 Web 服务器的 war 程序包,那么请选择 Jetty,Tomcat,Tomee
- 如果只是构建并打包,请选择 Maven

下面列出常见的 Java 命令行工具,更多参考[官方文档](https://docs.oracle.com/javase/10/tools/tools-and-command-reference.htm)
<DocCardList items={useCurrentSidebarCategory().items}/>

* javac:读取 Java 类和接口定义并将它们编译成字节码和类文件。
* javap:反汇编一个或多个类文件。
* javadoc:从 Java 源文件生成 API 文档的 HTML 页面。
* java:启动 Java 应用程序。
* appletviewer:启动 AppletViewer 并在 Web 浏览器之外运行小程序。
* jar:为类和资源创建存档,并从存档中操作或恢复单个类或资源。
* jlink:将一组模块及其依赖项组装和优化为自定义运行时映像。
* jmod:创建 JMOD 文件并列出现有 JMOD 文件的内容。
* jdeps:启动 Java 类依赖关系分析器。
* jdeprscan:静态分析工具,用于扫描 jar 文件(或其他一些类文件的集合)以查找已弃用的 API 元素的使用情况。

## 通用指南

### 服务{#service}
### 安装包管理工具

```
# Docker
sudo docker start jdk
sudo docker stop jdk
sudo docker restart jdk
sudo docker stats jdk
```
安装 maven, gradle 的范例:[参考](https://websoft9.github.io/docker-library/apps/openjdk/src/cmd.sh)

### Tomcat 配置模板{#tomcattp}
### 版本切换

针对 Tomcat 下的 server.xml 文件中的 host 配置段,需要修改的参数说明如下:
可以很方便的切换 docker 镜像版本,实现 Java 环境的切换。但需要考虑切换后,JDK 是否兼容您的应用程序。

## 配置选项

- JDK 环境应用路径:*/usr/src/app*
- Jetty 环境应用路径:*var/lib/jetty/webapps*
- Tomcat 环境应用路径:*/usr/local/tomcat*
- Tomee 环境应用路径:*/usr/local/tomee*
- [命令行](https://docs.oracle.com/javase/10/tools/tools-and-command-reference.htm):java, javac, jar, jdeprscan 等
- Java 百科:[Awesome Java](https://github.com/akullpp/awesome-java)
- 包管理器:maven, gradle

## 问题与故障

#### JDK 与 JRE 有什么区别?

JRE 是 JAVA 程序运行时,JDK 是 Java 开发者套件。JDK 包含了 JRE。

#### Java 应用程序启动过慢?

这是由于 [java.security 随机数策略导致](https://cloud.tencent.com/developer/article/2016915)

#### 访问 Tomcat 报404 ?

原因:Tomcat 容器应用路径中没有任何 app
方案:部署自己的 web 应用即可正常访问

#### Jetty 下 war 没解压解?

Jetty 环境下运行 war 包后,并没有在 war 包的路径下看到解压文件。

其实,这是正常的,因为 Jetty 会将 war 包解压到另外的路径中(与 Tomcat 不同)

| host 项 | 作用说明 | 必要性 |
| --- | --- | --- |
| name | 域名 | 必须填写 |
| appBase | war 包解压路径,例如:在 */data/wwwroot* 下解压 mysite2.war,系统就会自动产生 */data/wwwroot/mysite2* 网站目录 | 务必准确无误 |
| docBase | 网站存放目录,如果是war包,需带上后缀名,例如:`/data/wwwroot/mysite.war` | 务必准确无误 |
| path | 访问路径,一般请保持默认为空 | 建议保持默认 |
14 changes: 10 additions & 4 deletions docs/runtime/Java/tomcat.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import Meta from '../../apps/_include/tomcat.md';

<Meta name="meta" />

## 入门指南{#guide}
## 部署应用{#guide}

### 部署 Tomcat 应用{#deploy}

Expand All @@ -33,7 +33,13 @@ import Meta from '../../apps/_include/tomcat.md';

## 故障

#### 安装后访问 Tomcat 报404 ?
### Tomcat 配置模板{#tomcattp}

原因:默认的 Tomcat 容器没有部署任何 web 应用
对应方法:部署自己的 web 应用即可正常访问
针对 Tomcat 下的 server.xml 文件中的 host 配置段,需要修改的参数说明如下:

| host 项 | 作用说明 | 必要性 |
| --- | --- | --- |
| name | 域名 | 必须填写 |
| appBase | war 包解压路径,例如:在 */data/wwwroot* 下解压 mysite2.war,系统就会自动产生 */data/wwwroot/mysite2* 网站目录 | 务必准确无误 |
| docBase | 网站存放目录,如果是war包,需带上后缀名,例如:`/data/wwwroot/mysite.war` | 务必准确无误 |
| path | 访问路径,一般请保持默认为空 | 建议保持默认 |

0 comments on commit 8baf459

Please sign in to comment.