Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)

 

    把一个Web应用从Tomcat-5.0.28移植部署到Tomcat-6.0.16后,访问页面报错:

    org.apache.jasper.JasperException:
    /default/header.jsp(1,1) Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)


    难道Tomcat6的编码校验有问题?在Tomcat5下面是没有问题的。


    打开header.jsp后,发现如下写法:

    <%@ page language="java"  pageEncoding="utf-8"%>



    把小写的"utf-8"改为大写的"UFT-8":

    <%@ page language="java"  pageEncoding="UFT-8"%>


    保存后,再次访问,一切正常了。



                                        2008/12/25 于南昌


### 解决 Kubernetes 中部署 MySQL 使用 PVC 初始化失败的问题 当在 Kubernetes 集群中尝试通过 PersistentVolumeClaim (PVC) 来持久化存储数据并首次启动 MySQL 容器时,如果遇到错误 `--initialize specified but the data directory has files in it. Aborting.`[^1],这通常意味着 MySQL 尝试初始化一个新的数据库实例,却发现指定的数据目录已经存在文件。 #### 错误原因分析 此错误表明 MySQL 的初始化命令被调用了,但是它检测到目标路径下已经有现成的数据库文件。这种情况可能发生在: - 数据卷已经被其他 Pod 或者之前的 MySQL 实例写入过。 - 手动操作或其他服务意外向该位置添加了文件。 - 如果是新创建的集群或命名空间,则可能是 StatefulSet 控制器的行为导致重复执行 initContainer 步骤。 #### 解决策略 为了处理上述情况,可以采取以下措施之一: ##### 方法一:清理现有数据 确保用于挂载 PVC 的宿主机路径为空白状态再进行初始化工作。可以在应用 YAML 文件里定义 Init Container 去删除旧有的内容: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql-container image: mysql:latest volumeMounts: - mountPath: /var/lib/mysql name: mysql-persistent-storage initContainers: - name: cleanup-data-dir image: busybox command: ['sh', '-c', 'rm -rf /data/*'] volumeMounts: - mountPath: "/data" name: mysql-persistent-storage volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim ``` 这种方法适用于开发环境中快速解决问题;但在生产环境下应谨慎行事,因为会丢失所有历史记录。 ##### 方法二:跳过初始化过程 对于已有数据的情况,应该让 MySQL 不要再次运行初始化脚本。可以通过设置环境变量 `MYSQL_ALLOW_EMPTY_PASSWORD=true` 和 `INITIALIZE_DB=false`(假设镜像支持这个配置),或者直接修改 Dockerfile/Entrypoint 脚本来控制是否需要初始化。 ```yaml env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: root-password - name: INITIALIZE_DB value: "false" command: ["mysqld", "--skip-grant-tables"] ``` 注意这里使用了自定义参数 `--skip-grant-tables` 来绕过权限表加载阶段,具体取决于所使用的 MySQL 版本及其特性集。 ##### 方法三:检查和调整 PV/PVC 设置 确认 Persistent Volume(PV) 和 PVC 是否正确配置,并且没有冲突。特别是 StorageClass 参数的选择会影响如何分配磁盘资源以及其生命周期管理策略。有时更改默认的 reclaimPolicy 可能有助于避免不必要的销毁行为引发此类问题。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值