小编the*_*yuv的帖子

ZonedDateTime toString与ISO 8601的兼容性

我正在努力确保调用toString()我的ZonedDateTimeObject符合ISO-8601格式.

toString()方法的文档说明:

...如果偏移和ID相同,则输出与ISO-8601兼容

这是否意味着存在一种情况,即呼叫 zdt.getOffset() 会返回不同的东西 zdt.getZone().getRules().getOffset(zdt.toInstant())

这似乎没有意义.

有人可以提供偏移和ID不相同的示例(即:toString()不符合ISO-8601的地方),以便我可以更好地理解文档中的描述.

谢谢.

java time java-time zoneddatetime

15
推荐指数
2
解决办法
1万
查看次数

Java货币显示名称国际化

是否有任何理由为什么某些显示名称以英语显示,尽管语言环境不是英语(即:未翻译).

例如:区域设置:"ru"未翻译

Locale locale = new Locale("ru");
Currency curr = Currency.getInstance("USD");
System.out.println(curr.getDisplayName(locale));
// US Dollar
Run Code Online (Sandbox Code Playgroud)

区域设置:"es"已翻译

Locale locale = new Locale("es");
Currency curr = Currency.getInstance("USD");
System.out.println(curr.getDisplayName(locale));
// dólar estadounidense
Run Code Online (Sandbox Code Playgroud)

这是故意的吗?或者Java没有得到翻译它?或者我做错了什么?

我试图找到存储这些翻译但无法找到它们的文件.如果有人能指出我那个有用的资源.

谢谢.

java currency internationalization

13
推荐指数
1
解决办法
602
查看次数

右对齐并左对齐水平导航栏中的ul li元素

我正在为我的网站编写一个水平导航栏.html如下:

        <nav>
            <ul>
                <li class="special_text"><a href="#">Hello1</a></li>
                <li><a href="#">Hello2</a></li>
                <li><a href="#">Hello3</a></li>
            </ul>
        </nav>
Run Code Online (Sandbox Code Playgroud)

css如下:

* {
    margin: 0;
    padding: 0;
}

body {
    background-color: white;
    margin: 15px auto;
    border: 1px solid black;
}

header {

}

ul {
    list-style: none;
    padding: 1em 0;
    border-bottom: 2px solid #61f231;
    border-top: 2px solid #61f231;
}

li {
    display: inline;
    padding: 0 1.5em;
    border-left: 2px solid #61f231;
}

li.special_text {
    font-size: 200%;
    font-weight: bold;
    color: black;
    font-family: "Arial Black";
}

li.special_text a {
    text-decoration: none; …
Run Code Online (Sandbox Code Playgroud)

css

7
推荐指数
2
解决办法
4万
查看次数

访问日志中的奇怪请求会导致IllegalArgumentException

我使用tomcat8.0.43作为我的服务器.

在查看我的日志时,偶尔会看到:

[...] INFO [...] org.apache.coyote.http11.AbstractHttp11Processor.process解析HTTP请求标头时出错
注意:将在DEBUG级别记录更多出现的HTTP标头解析错误.java.lang.IllegalArgumentException:在HTTP协议中找到无效字符

要么:

java.lang.IllegalArgumentException:在请求目标中找到无效字符.有效字符在RFC 7230和RFC 3986中定义

如果我查看访问日志,我会看到请求产生这些异常的URL是这样的:

"GET /scripts/index.php?OPT_Session= null"400

要么:

"GET null null"400

我是否正确识别导致异常被抛出的请求?

有什么办法可以阻止抛出这些异常或限制这些请求吗?

普通浏览器甚至不允许客户端输入其中包含空格的URL.看来这些请求确实有空格.

谢谢.

java logging tomcat tomcat8

7
推荐指数
1
解决办法
817
查看次数

连接池泄漏原因

我一直在体验(我认为)连接池的问题.具体来说,我的日志显示消息:

org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject $ AbandonedObjectCreatedException:以下代码创建的[时间]池化对象尚未返回池中

我已经检查了日志显示的堆栈跟踪中列出的方法,但找不到罪魁祸首(我总是关闭ResultSet,PreparedStatementConnection在每个方法的最后).

我有一个执行两个查询的方法,也许我没有正确执行它.

它的布局如下:

ConnectionPool pool = ConnectionPool.getInstance();
Connection connection = pool.getConnection();
PreparedStatement ps = null;
PreparedStatement rowsPs = null;
ResultSet rs = null;
ResultSet rowsRs = null;

String query = "SELECT SQL_CALC_FOUND_ROWS ...";
String totalRowsQuery = "SELECT FOUND_ROWS() AS RowCount";

try {
    ps = connection.prepareStatement(query);
    [set ps params]
    rs = ps.executeQuery();
    [process rs]

    rowsPs = connection.prepareStatement(totalRowsQuery);
    rowsRs = rowsPs.executeQuery();
    [process rowsRs]
} catch (SQLException e) {
    [handle e]
} finally …
Run Code Online (Sandbox Code Playgroud)

java mysql connection-pooling jdbc

6
推荐指数
1
解决办法
3423
查看次数

从ec2 Linux AMI连接到RDS MySQL实例-找不到mysql命令

我尝试通过SSH从我的ec2服务器的SSH连接(通过PUTTY)连接到我的RDS MySQL实例,如下所示:http : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html#USER_ConnectToInstance.CLI

但是我得到:

-bash: mysql: command not found
Run Code Online (Sandbox Code Playgroud)

我认为也许我必须在ec2 linux服务器上安装MySQL Utility客户端?如果是这种情况,我该怎么做?

我尝试mysql/home/ec2-user目录中运行命令。

mysql amazon-ec2 amazon-web-services amazon-rds

5
推荐指数
3
解决办法
5163
查看次数

按国家限制网站访问

我正在使用AWS托管我的网站。

该网站位于2个ec2实例上,并带有一个负载均衡器(ELB)来平衡它们之间的流量。

目前,我正在使用DNS(Route 53)通过Route 53的地理位置路由来限制对网站的访问:http : //docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing -政策地理

(地理位置限制仅是为了限制我的网站的初始发布。这不是出于安全原因。这意味着该限制只需要对一般公众有效)

这让我有些担心,因为我的负载均衡器仍然可以从任何地方访问。因此,我担心我的负载均衡器会被Google或其他索引编制索引,然后我所在地区以外的人将能够访问该网站。

是否有针对此的修复程序?我是否以错误的方式限制了位置访问?是否有办法在ELB的安全组中指定它仅接收来自我的DNS的入站流量(当然,那我还必须指定我的静态内容也允许来自边缘位置的入站流量,但这不是问题)?

注意:为安全组选择入站规则时,有一个选项,在“类型”下选择“ DNS(UDP)”或“ DNS(TCP)”。我尝试为我的ELB的两种DNS类型(和IP地址=“ anywhere”)添加两个规则,但这并不限制对ELB的访问只能通过我的DNS。

谢谢。

dns geolocation amazon-web-services amazon-route53

5
推荐指数
2
解决办法
4499
查看次数

Google Admin SDK 403 无权访问此资源/API

我在 java web 应用程序中使用以下代码来尝试获取组的所有用户:

GoogleCredential credential = GoogleCredential.fromStream(Util.class.getResourceAsStream("[credential_file].json")).createScoped(SCOPES);

Directory directory = new Directory.Builder(httpTransport, JSON_FACTORY, credential).build();

Directory.Members dirMem = directory.members();
Members members = dirMem.list("[group_email]").execute();
Run Code Online (Sandbox Code Playgroud)

这会导致最后一行 ( dirMem.list...)出现异常 403(未授权访问此资源/API )。

从文档(https://developers.google.com/admin-sdk/directory/v1/guides/delegation)和其他帖子中,我看到解决方案是使用setServiceAccountUser(). 但是,这意味着我必须使用 p12 文件而不是 json 文件(Google 建议在创建密钥时使用 json 文件)。

有什么办法可以在仍然使用 json 文件的同时解决这个问题(它还涉及更少的代码)。

谢谢。

google-api google-api-java-client google-oauth google-admin-sdk

5
推荐指数
1
解决办法
8057
查看次数

使用负载均衡器而不是代理服务器

我打算在同一个域上运行Java Web应用程序(www.example.com)和wordpress博客(www.example.com/blog).

Tomcat服务器提供我的Java Web应用程序内容,Apache服务器提供WordPress内容.

最初,我打算使用代理服务器将所有博客请求路由到Apache服务器,并将所有其他请求路由到Tomcat(http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html)(I我不确定我将如何实施,因为我还没有完成它.

但是,我最近了解了AWS Application Load Balancer.使用LB我可以根据url路径将请求路由到特定端口,因此我可以使用它将所有www.example.com/blog请求路由到Apache服务器(在端口80上)和所有www.example.com请求Tomcat服务器(端口8080).

我有什么理由不这样做吗?由于Application Load Balancer是一个相对较新的产品,因此大多数文档都推荐使用代理服务器解决方案,但我认为没有理由不使用Application Load Balancer解决方案.

谢谢.

proxy tomcat reverse-proxy amazon-web-services

4
推荐指数
1
解决办法
4018
查看次数

不可变的最终变量应该是静态的吗?

在java中,如果变量是不可变的,那么最终它应该是一个静态类变量吗?

我问,因为每次类的一个实例使用它时创建一个新对象似乎很浪费(因为它始终是相同的).

例:

每次调用时在方法中创建的变量:

public class SomeClass {

    public void someMethod() {

        final String someRegex = "\\d+";
        final Pattern somePattern = Pattern.compile(someRegex);

        ...

    }

}
Run Code Online (Sandbox Code Playgroud)

变量创建一次:

public class SomeClass {

    private final static String someRegex = "\\d+";
    private final static Pattern somePattern = Pattern.compile(someRegex);

    public void someMethod() {

        ...

    }

}
Run Code Online (Sandbox Code Playgroud)

使用后一个代码总是更好吗?

这个答案似乎表明最好使用后面的代码:如何在Java中初始化长度为0的String数组?

java

4
推荐指数
1
解决办法
411
查看次数

使 JAR 可用于 JDK 和 JRE

我正在使用 Tomcat、JDK8 和 Netbeans IDE 运行一个 Web 应用程序(使用 ANT 进行构建,使用 IVY 进行依赖管理)。

我目前将需要JARs提供给 JRE ( ,,, servlet-api.jar)的.jsp-api.jarel-api.jartomcat-dbcp.jarJAVA_HOME/jre/lib/ext

我正在升级到新的 JDK 版本 (JDK17),该版本不再具有 JRE 扩展文件夹。我想知道我应该把这些放在哪里JARs

根据这篇文章(以及我见过的其他文章),最好的做法是使用依赖项管理器并将这些 jar 添加到您的类路径中。

我目前使用 IVY 来管理我的依赖项,并自定义了我的 ANT 构建以将运行时依赖项添加到WEB-INF/lib构建WAR文件的文件夹中。

但是,我不需要JARs上面列出的内容在运行时可供我的应用程序使用,我需要它们可供 JRE 使用。也就是说,我不希望JARs(servlet-api.jar等) 出现在WEB-INF/lib我的构建WAR文件中。我怎样才能做到这一点?

尖锐化我的最后一个问题:

  1. 如何JARs在我的开发环境中为 Netbeans 中的 JRE 提供某些/依赖项?
  2. 如何JARs在生产环境中使用的构建 WAR 文件中使某些/依赖项可供 JRE 使用?
  3. 我是否正确地说这些JARs需要可供 JRE 使用?我见过的所有帖子都讨论了 …

java ant netbeans build ivy

2
推荐指数
1
解决办法
683
查看次数