首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插件uriEncoding不使用https

插件uriEncoding不使用https
EN

Stack Overflow用户
提问于 2016-01-05 18:56:07
回答 2查看 1.6K关注 0票数 3

我使用tomcat7-maven-plugin运行我的应用程序(tomcat7 7: run )。我在没有https的配置中使用<uriEncoding>utf-8</uriEncoding>,一切都很好。但是一旦我添加了https,编码就停止工作了。

当我在client上提出这样的请求时:https://localhost:8443/ROOT/checkName?mediaName=%C3%A7%C3%A7

我在服务器上收到这个:

以下是我的一些pom.xml:

代码语言:javascript
复制
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
                    <path>/${project.warname}</path>
                    <warFile>target/${project.warname}##${maven.build.timestamp}-${project.name}-v${project.version}</warFile>
                    <uriEncoding>utf-8</uriEncoding>

                    <!-- HTTPS -->
                    <httpsPort>8443</httpsPort>
                    <keystoreFile>${user.home}/.mvnkeystore</keystoreFile>
                    <keystorePass>changeit</keystorePass>
                    <!-- HTTPS -->

                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.25</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

和web.xml:

代码语言:javascript
复制
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>securedapp</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

如果删除https标记,uriEncondig将重新开始工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-06 10:12:47

这是Apache插件- MTOMCAT-264的一个报告错误。有一个开放的github中的PR来修复它。

您可能可以通过使用serverXml参数和文档中提到的警告来解决这个问题。

serverXml:要使用server.xml,如果您使用它,您必须在这个文件中配置webapp路径。

票数 3
EN

Stack Overflow用户

发布于 2016-01-05 22:56:01

我认为您需要在服务器.See 这里相关问题中配置HTTPS连接器。在httpsPort属性上赋值这一事实意味着您只启用了连接器(我猜有一些默认值)--作为插件文档显示

您需要使用以下内容配置连接器:

代码语言:javascript
复制
<Connector port="443" protocol="HTTP/1.1"
           maxThreads="150" connectionTimeout="20000"
           SSLEnabled="true" scheme="https" secure="true"
           keystoreFile="conf/.keystore"
           keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"
           URIEncoding="UTF-8" compression="on"/>

希望它能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34619248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档