小编XDR*_*XDR的帖子

33
推荐指数
3
解决办法
2万
查看次数

WebSockets:通过ELB从客户端到Amazon AWS EC2实例

如何通过ELB将ssl连接到由GlassFish在Amazon AWS EC2实例上提供的websocket?

我在GlassFish 4.1 b13预发布中使用Tyrus 1.8.1作为我的websocket实现.

端口8080是不安全的,端口8181是用ssl保护的.

  • ELB dns名称:elb.xyz.com
  • EC2 dns名称:ec2.xyz.com
  • websocket路径:/ web/socket

我已成功使用ws和wss直接连接到我的EC2实例(绕过我的ELB).即以下两个网址都有效:

  • WS://ec2.xyz.com:8080 /网络/插座
  • WSS://ec2.xyz.com:8181 /网络/插座

我已经通过使用tcp 80> tcp 8080监听器在我的ELB上成功使用了ws(非ssl).即以下网址有效:

  • WS://elb.xyz.com:80 /网络/插座

但是,我没有能够通过我的ELB找到使用wss的方法.

我尝试了很多东西.

我假设最有可能通过我的ELB工作的方法是在我的ELB上创建一个tcp 8181> tcp 8181监听器并启用代理协议,并使用以下URL:

  • WSS://elb.xyz.com:8181 /网络/插座

不幸的是,这不起作用.我想我可能必须在glassfish上启用代理协议,但是我无法找到如何做到这一点(或者如果可能的话,或者wss是否有必要在我的ELB上工作).

另一种选择可能是以某种方式使用ws或wss运行在ELB上终止的ssl连接,并通过使用ssl> tcp 8080侦听器使其继续对glassfish不安全.这对我来说也不起作用,但也许有些设置不正确.

有没有人对我上述两项试验进行任何修改.或者有人有其他建议吗?

谢谢.

ssl wss glassfish websocket amazon-elb

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

HTML5拖放(DnD):更改光标

在HTML5中的浏览器客户端区域上拖动元素时,如何将光标更改为我想要的任何光标?

到目前为止,我只能在拖动时显示默认光标(除了不支持丢弃的无光标).

我不是在谈论以下任何一种情况:

  • 使用event.dataTransfer.setDragImage()除了光标来显示图像

  • 使用event.dataTransfer.dropEffect以显示除了光标复印件或链路符号,或者将光标改变为无符号

  • 在Firefox中,使用event.dataTransfer.mozCursor,因为它只能执行默认的系统行为,或显示箭头光标,这两者都没有帮助(此外,我想要跨浏览器支持,虽然我主要针对Chrome)

我尝试过许多其他的技巧,包括使用CSS :hover:focus,和许多使用JavasScript招数,都无济于事.

谢谢你的帮助.

html5 drag-and-drop cursor

11
推荐指数
1
解决办法
2218
查看次数

GlassFish 4.1启动警告:未找到javax.ejb.PostActivate和javax.ejb.PrePassivate

每当我启动GlassFish 4.1时,我在GlassFish日志中都会收到以下两个警告:

WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled

WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled
Run Code Online (Sandbox Code Playgroud)

但是,两个引用的类都在glassfish/modules/javax.ejb-api.jar.

有没有办法解决/阻止这些警告?

ejb glassfish java-ee weld glassfish-4.1

9
推荐指数
1
解决办法
2446
查看次数

Grails/GORM:lazy:false和fetchMode之间的区别

在Grails/GORM中,static mapping = {xyz lazy: false}&之间有什么区别static fetchMode = [xyz: 'eager']

例:

class Book {
    static belongsTo = [author: Author]
    static mapping   = {author  lazy: false}
    static fetchMode = [author: 'eager']
}
Run Code Online (Sandbox Code Playgroud)

grails lazy-loading grails-orm fetch eager-loading

9
推荐指数
1
解决办法
3282
查看次数

Tomcat 7.0.35为静态HTML文件设置HTTP响应标头Content-Type字符集

我使用HTTP连接器从一个独立的Tomcat 7.0.35服务器的单个war文件中提供一些静态HTML文件和一个servlet.

我想通过设置HTTP响应头来指定所有静态HTML文件的字符集Content-Type=text/html;charset=UTF-8.

Tomcat默认提供HTML文件Content-Type=text/html(没有字符集部分).

我按照以下说明操作:

http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q8

但标题仍然包含Content-Type=text/html没有;charset=UTF-8

我的web.xml在下面转载.请注意,我试图改变url-pattern/*,*,/index.html,和index.html,但这些工作的.

仅供参考,Tomcat正确地提供了/index.html文件(缺少除外;charset=UTF-8).将/ servlet的的getData也工作正常,我已经成功地建立了servlet的响应Content-Type=text/html;charset=UTF-8使用response.setContentType("application/json;charset=UTF-8");.

谢谢你的帮助.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <filter>
        <filter-name>CharacterEncoding</filter-name>
        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncoding</filter-name>
        <url-pattern>/index.html</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>DataServlet</servlet-name>
        <servlet-class>com.rcg.data.web.DataServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DataServlet</servlet-name>
        <url-pattern>/getData</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
</web-app>
Run Code Online (Sandbox Code Playgroud)

tomcat content-type war static-html servlet-filters

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

在GlassFish 4.1中升级杰克逊

我正在使用GlassFish 4.1,其中包括Jackson 2.3.2.

我想升级到最新版本的Jackson(目前是2.4.4).

在GlassFish 4.1中升级Jackson的过程简单如下:

a)停止GlassFish

b)删除osgi-cache

c)用更新的版本替换glassfish/modules目录中的Jackson 2.3.2 jar

d)启动GlassFish

谢谢.

java glassfish jackson glassfish-4 glassfish-4.1

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

最终确定当前运行的shell是bash还是zsh

如何确定当前运行的 shell 是 bash 还是 zsh?

(能够消除其他 shell 之间的歧义是一个好处,但只有 bash 和 zsh 是 100% 必要的)

我已经看到了几种据说可以做到这一点的方法,但它们都有问题(见下文)。

我能想到的最好的方法是运行一些适用于其中一个而不是另一个的语法,然后检查错误/输出以查看哪个 shell 正在运行。如果这是最佳解决方案,那么什么命令最适合此测试?

最简单的解决方案是每个 shell 都包含一个与标识 shell 相同名称的只读参数。然而,如果存在的话,我还没有听说过。

确定当前运行的 shell 的非确定方法:

# default shell, not current shell
basename "${SHELL}"

# current script rather than current shell
basename "${0}"

# BASH_VERSINFO could be defined in any shell, including zsh
if [ -z "${BASH_VERSINFO+x}" ]; then
    echo 'zsh'
else
    echo 'bash'
fi

# executable could have been renamed; ps isn't a builtin
shell_name="$(ps -o comm= -p …
Run Code Online (Sandbox Code Playgroud)

bash zsh

7
推荐指数
3
解决办法
5620
查看次数

从IntelliJ 2018.1.4调试Gradle Wrapper 4.7构建的build.gradle.kts

我正在尝试调试build.gradle.ktsIntelliJ 2018.1.4中的Gradle Wrapper 4.7 Kotlin DSL构建。

我跑了:

./gradlew clean`
./gradlew build -Dorg.gradle.debug=true --no-daemon
Run Code Online (Sandbox Code Playgroud)

Gradle等待调试器附加。

我在整个过程中添加了断点build.gradle.kts

我创建了一个远程调试配置并启动了它。

运行并完成了构建,并且从未中断任何断点。

我还尝试从Tasks/build/buildIntelliJ Gradle工具窗口中的右键单击菜单进行调试,但这也只是运行任务,并且从未在任何断点处停止。

我该如何调试build.gradle.kts

debugging intellij-idea gradle gradle-kotlin-dsl

6
推荐指数
0
解决办法
216
查看次数

将log4j 2.10.0与Java 9 System.Logger一起使用

如何设置Java 9以便System.Logger实例写入log4j 2.10.0,而不是写入JUL?

java logging log4j log4j2 java-9

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