java - 如何在 WINDOWS 中更改 TOMCAT 的默认区域设置?

标签 java oracle internationalization tomcat8 jdbcrealm

从照片中可以看出,伊朗已确定位置。

enter image description here

我在“%CATALINA_HOME%\conf\server.xml”中使用了领域标记。

 <Realm  className="org.apache.catalina.realm.JDBCRealm"
                driverName="oracle.jdbc.driver.OracleDriver"
                connectionURL="jdbc:oracle:thin:@localhost:1521:xe"
                connectionName="Arash" connectionPassword="who"
                userTable="users" userNameCol="USER_NAME" userCredCol="USER_PASS"
                userRoleTable="USER_ROLES" roleNameCol="ROLE_NAME"  />

当TOMCAT运行并连接数据库时,出现以下错误。

java.sql.SQLException: Locale not recognized
    at oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:1059)
    at oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:261)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:565)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
    at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:663)
    at org.apache.catalina.realm.JDBCRealm.startInternal(JDBCRealm.java:726)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:899)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:649)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

我将此代码放在“%CATALINA_HOME%\bin\catalina.bat”中

set -Duser.language=en -Duser.country=US

仍然出现错误。

最佳答案

您不需要设置国家/地区,而是需要设置用户的区域。所以正确的 Java 选项是: -Duser.language=en -Duser.region=US

关于java - 如何在 WINDOWS 中更改 TOMCAT 的默认区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34827948/

相关文章:

.net - Oracle 查询在 .NET 应用程序中运行缓慢(或失败),但在 SQL Developer 中运行很快

internationalization - 国际包和日期格式奇怪的行为

java - 学习回溯算法

java - 是 Math.max(a,b) 还是 (a>b)?a :b faster in Java?

sql - Oracle - 用句号表示千位,用逗号表示小数点

apache-flex - 国际化 Flex 应用程序的最佳实践?

ruby-on-rails - 排除错误消息前面的属性名称

java - 使用 fragment - NullPointerException

java - 在 SpringMVC 中,我在 Centos 7 STS 中部署和运行另一个系统的项目,它给出了错误

excel - 无法连接 SQLState=08004 [Oracle][ODBC][Ora]ORA-12154 : TNS:could not resolve the connect identifier specified in ms odbc administrator