我正在尝试使用glassfish 4的端口统一将任何http请求重定向到https.我很容易用V3做这个,但我遇到了glassfish v4 - Java 1.7的问题.
我在glassfish v4中执行的命令 -
asadmin create-protocol --securityenabled = false http-redirect asadmin create-protocol-filter --protocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpRedirectFilter redirect-filter
asadmin create-protocol --securityenabled = false pu-protocol asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-listener-2 --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-finder asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-redirect
set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.protocol = pu-protocol
以上所有命令都可以正确执行.但是,当我尝试访问Web时,它会抛出异常并且http地址无法启动 - localhost:8080失败
Glassfish中的例外情况 -
警告:FilterChain执行java.lang.ClassCastException中的异常:org.glassfish.grizzly.memory.HeapMemoryManager $ TrimmableHeapBuffer不能转换到org.glassfish.grizzly.http.HttpContent在org.glassfish.grizzly.config.portunif.HttpRedirectFilter.handleRead (HttpRedirectFilter.java:99)维持在org.glassfish org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) .grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java) :114)org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)org.glassfish.grizzly.portunif.PUFilter.handleRead(PUFilter.java:231)at org.glassfish.grizzly.filterchain.ExecutorResolver $ 9 .execute(EXECUT orResolver.java:119)在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)在org.glassfish.grizzly .filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)在org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)在org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy(TCPNIOTransport.java:838)在org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113). run0(WorkerThreadIOStrategy.java:115)在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:55)在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)在org.gl assfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:564)at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:544)at java.lang.Thread.run(Thread. Java的:722)
如果可以解决这个问题,请欣赏它,还有其他方法可以将端口重定向从http转换为https吗?
确保您的最后一个命令包含"asadmin",因为set是DOS命令.
当我使用以下命令时,这对我使用GlassFish 4.0(虽然它看起来与你的非常相似):
asadmin create-protocol --securityenabled=false http-redirect
asadmin create-http-redirect --redirect-port 8181 --secure-redirect true http-redirect
asadmin create-protocol --securityenabled=false pu-protocol
asadmin create-protocol-filter --protocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpRedirectFilter redirect-filter
asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-listener-2 --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-finder
asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-redirect
asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.protocol=pu-protocol
Run Code Online (Sandbox Code Playgroud)
我注意到这会导致http-listener-1的HTTP选项卡(Configurations - > server-config - > Network Config - > Network Listeners - > http-listener-1 - > SSL选项卡)为no更长的显示.对我来说不是问题.
| 归档时间: |
|
| 查看次数: |
3428 次 |
| 最近记录: |