小编Nic*_*ote的帖子

如何为Apache httpd安装mod_ssl?

所以我httpd前一段时间安装了Apache ,并且最近回到它尝试设置SSL并让它为几个不同的tomcat服务器提供服务.

目前我有两个完全独立的Tomcat实例,提供略有不同的版本(一个用于开发,一个用于演示)我的Web应用程序到两个不同的端口:

  • example.com:8081
  • example.com:8082

我已经成功(一月后)用于mod_jk获取httpd服务同样的Tomcat实例http://www.example.com:8090/devhttp://www.example.com:8090/demo (8090只因为我已经有了8080通过码头在这一阶段运行的其他应用程序)在使用下面的代码httpd.conf:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug

<VirtualHost *:8090>
    JkMount /devd* tomcatDev
    JkMount /demo* tomcatDemo
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我不想做的是启用SSL.

我添加了以下内容httpd.conf:

Listen 443
<VirtualHost _default_:443>
    JkMount /dev* tomcatDev
    JkMount /demo* tomcatDemo
    SSLEngine on
    SSLCertificateFile "/opt/httpd/conf/localhost.crt"
    SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重新启动Apache时apachectl restart(是的,关闭我提到的其他应用程序,所以它没有玩具有https连接)我不断得到错误:

无效命令'SSLEngine',可能由服务器配置中未包含的模块拼写错误或定义.httpd没有运行,试图启动

我看了一下httpd/modulesdir,确实没有mod_ssl,只有mod_jk.sohttpd.exp.

我已经尝试使用yum进行安装mod_ssl,它说它已经安装好了.事实上,我能找到mod_ssl.so/usr/lib/httpd/modules,但是这不是路径,我安装位置httpd …

apache ssl

64
推荐指数
4
解决办法
21万
查看次数

Spring Webflow:如何在转换期间将属性从一个流传递到另一个流?

我有一个动作状态,它评估一个表达式,然后根据结果转换到各种其他状态.结果状态之一是将子流控制到另一个流的子流状态,例如;

<action-state id="doWork">
    <evaluate expression="someAction.doWork(someInput)" />
 <transition on="WORKSUCCESS" to="workSuccess" />
 <transition on="WORKFAIL" to="fixFail" />
</action-state>

<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
    <input name="someNumber" value="1" type="java.lang.Integer" />
    <transition on="finish" to="workSuccess" />
</subflow-state>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我可以通过输入标记将输入传递给子流,但我的问题是,当且仅当从转换WORKFAIL调用子流状态时,如何指定和传递我想要的其他输入?假设可以从其他动作状态调用子流状态"fixFail".

我尝试过类似以下的东西但没有效果;

<action-state id="doWork">
    <evaluate expression="someAction.doWork(someInput)" />
 <transition on="WORKSUCCESS" to="workSuccess" />
 <transition on="WORKFAIL" to="fixFail">
            <attribute name="newInput" value="3000" type="java.lang.Integer" />
    </transition>
</action-state>

<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
    <input name="someNumber" value="1" type="java.lang.Integer" />
    <input name="someNumber2" value="flowScope.newInput" type="java.lang.Integer" />
    <transition on="finish" to="workSuccess" />
</subflow-state>
Run Code Online (Sandbox Code Playgroud)

spring-webflow

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

为什么Maven不下载jar文件但是下载插件没问题?

好的我正在将我的开发环境从笔记本电脑移到我的桌面.

我在两台机器上都有完全相同的项目,但是当我尝试通过桌面上的eclipse运行maven的更新依赖项时,只是抱怨每个依赖项都"缺少人工制品"!

我已经检查了桌面上的本地仓库,果然,没有罐子!?所有的pom都在那里,但没有罐子!

我回到了笔记本电脑,从那台机器上的本地仓库中的罐子里删除了,并再次调用了更新依赖项并且爆炸,罐子下载很好,但桌面似乎无法下载任何罐子?

这两款机器都是一样的网络/路由器,所以它不可能是硬件防火墙/代理,但有一些蚀设置或Windows防火墙设置,我完全忘记了上?

最后,我一直在删除桌面上的repo并在项目中使用mvn -up clean install,我注意到它下载了PLUGIN jar就好了,但后来继续只下载任何和所有依赖的poms!?

我的settings.xml如下(建议的repos的mashup类型);

  <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd">

<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors></mirrors>
<profiles>

    <profile>
        <id>standard-extra-repos</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>net.java.download</id>
                <url>http://download.java.net/maven/2</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>org.apache</id>
                <url>http://maven.apache.org/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>org.codehaus.mojo</id>
                <url>http://mojo.codehaus.org/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>com.jboss.repository</id>
                <url>http://repository.jboss.com/maven2</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>com.springsource.repository.bundles.release
                </id>
                <name>SpringSource Enterprise Bundle Repository -
                    SpringSource Bundle Releases</name>
                <url>http://repository.springsource.com/maven/bundles/release
                </url>
                <releases> …
Run Code Online (Sandbox Code Playgroud)

java maven

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

两个日期之间的平均差异,按第三个字段分组?

所以说我们有3个领域, username, start_date, end_date

用户启动和停止多个记录,例如,bob已经启动并停止了两个记录.

bob   1/2/13 11:00  1/2/13 13:00
jack  1/2/13 15:00  1/2/13 18:00
bob   2/2/13 14:00  1/2/13 19:00
Run Code Online (Sandbox Code Playgroud)

我需要知道每个用户所花费的平均时间(即开始和结束之间的差异),以小时为单位(即按用户分组,而不仅仅是每行).

我不能完全理解如何做差异,平均AND组?有帮助吗?

sql

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

如何在Apache中使用mod_rewrite - > mod_jk - > tomcat setup?

与我之前的一些问题有关.

我现在有一个我非常喜欢的设置;

Apache httpd侦听端口80接受http和https连接.在几个AJP端口上运行的几个Tomcat实例.

Mod_Jk正在向不同的tomcat实例发送不同的url请求;

www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/     -> tomcat:8100
Run Code Online (Sandbox Code Playgroud)

这是通过httpd.conf中的以下配置(或包含的子文件)实现的;

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info

NameVirtualHost *:80

<VirtualHost *:80>
    JkMount /demo* demoTomcat (workers.properties not shown)
    JkMount /test* testTomcat
    JkMount /* rootTomcat
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这一切都很棒.我还使用类似的VirtualHost标记进行SSL设置并运行https连接;

<VirtualHost _default_:443>
    JkMount /demo* demoTomcat 
    JkMount /test* testTomcat
    JkMount /* rootTomcat
... SSL Stuff follows ....
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是我的SSL证书仅适用于www.mydomain.com而不是mydomain.com.

我被建议使用follow mod_rewrite调用;

Options +FollowSymlinks
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [PT,L]
Run Code Online (Sandbox Code Playgroud)

我已经在httpd.conf文件中的mod_jk规则之前和之后放置了这些.Apache首先抱怨RewriteEngine是一个无效的命令,但是当我第一次记住LoadModule命令时它就消失了:)现在Apache重新启动就好了,服务器启动并接受请求,一切都按照它的使用方式运行......但那样就这样,这些mod_rewrite命令似乎没有效果?

我输入http://mydomain.com浏览器,我按照正常情况获取我的网站.网址似乎没有改变 …

apache mod-rewrite tomcat mod-jk

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

从远程客户端访问Windows Server 2008 R2上的SQL Server

我们目前正在使用安装在远程CentOS盒上的PostgreSQL转向使用安装在远程Windows Server 2008 R2盒子上的MS SQL Server 2008 R2.

我们使用此数据库的Web应用程序已安装并运行在另一个将保留的CentOS盒中.

所有这些框都由第三方托管服务提供商提供,并且都在同一个域网络上.

因此,我们的开发远离服务器/数据库域,因为我们的开发机器是远程的.在过去开放VPN足以让我们在我们的PC上本地运行的Web应用程序的开发实例远程连接到运行在CentOS机器上的PostgreSQL数据库.

但是现在我们在使用Windows Server 2008 R2框时遇到了同样的问题.即使VPN打开,任何连接(甚至ping)远程服务器计算机的尝试都会超时.

我们在新数据库服务器上获取数据库实例连接的代码是正确的,因为当我们将该代码上传到CentOS应用程序框并运行它时,它连接正常,因为代码现在在同一物理域中的框上运行作为Windows Server 2008 R2框.但是,我们需要从远程开发机器建立连接.

这有意义吗?我们需要更改一些Windows防火墙设置以允许远程连接吗?正如我所说,我们甚至无法从远程盒子PING新的Windows Server 2008 R2机器.

sql-server windows-server-2008-r2

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

Select2忽略某些输入?

所以我使用基于Select2 JQuery的替换选择框.

我已经设置了(在我发现的一个例子的帮助下)通过ajax进行远程数据搜索,效果很好.我的最小输入值为3,因此用户必须在搜索开始前输入至少3个字符(否则"A"将返回90%的可搜索值).

不幸的是,我的可搜索值的很大一部分也以"The"开头.因此,如果用户键入"The",则返回50%的结果,填充基本未经过滤的结果的大量下拉...不理想!

有没有办法让Select2忽略某些设定的短语,即键入"The"不应计入最少3个字符数!

$('#searchInput').select2({
    minimumInputLength: 3,
    placeholder: 'Please search here ...',
    ajax: {
        url: "/api/v1/institutes",
        dataType: 'json',
        quietMillis: 100,
        data: function(term, page) {
            return {
                query: term
            };
        },
        results: function(data, page ) {
            return { results: data }
        }
    },
    formatResult: function(institute) { 
        return "<div class='select2-user-result'>" + institute.name + "</div>"; 
    },
    formatSelection: function(institute) { 
        return institute.name; 
    },
    initSelection : function (element, callback) {
        var elementText = $(element).attr('data-init-text');
        callback({"term":elementText});
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-select2

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

如何停止Spring Data JPA自动查询生成?

我已在 Spring Data JpaRespository 上添加了一个具有单个自定义方法的自定义接口,如该问题的答案中所述;

如何向 Spring Data JPA 添加自定义方法

但是现在我收到以下错误;

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property customMethod found for type Account!
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:75)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:307)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:270)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:241)
    at org.springframework.data.repository.query.parser.Part.<init>(Part.java:76)
Run Code Online (Sandbox Code Playgroud)

这似乎是因为 Spring Data 试图生成“customMethod”的查询,认为它是“Account”的属性。

如何停止给定方法的自动查询生成?!

更新我的代码具体如下;

public interface CacheInvalidatingRepo<T> {
    public void invalidateCache(T obj);
}

@Component
public class CacheInvalidatingRepoImpl<T> implements CacheInvalidatingRepo<T> {

    @Override
    public void invalidateCache(T obj) {
        // kill the entity manager cache
    }

}

public interface VerificationRepo extends JpaRepository<Verification, BigInteger>, JpaSpecificationExecutor<Verification>, CacheInvalidatingRepo<Verification> {

}
Run Code Online (Sandbox Code Playgroud)

结果如下; …

spring jpa spring-data spring-data-jpa

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

如何初始化firstChild所以我不知道"x.firstChild是null还是不是对象"?

在我的JSP/HTML中我有这个:

<div id="exampleLabel"> </div>
Run Code Online (Sandbox Code Playgroud)

然后在我的javascript部分,我有一个像这样的onclick调用的函数;

function changeLabel(){
    exampleLabel.firstChild.nodeValue = 'LABEL HAS CHANGED';
}
Run Code Online (Sandbox Code Playgroud)

这在Chrome中运行良好,在Firefox和IE中没有任何功能,页面上出现错误

exampleLabel.firstChild为null或不是对象.

好的,我可以认为没有第一个孩子所以试图做第一个孩子.YYTHING会是一个NPE,我甚至可以认为其他浏览器不仅仅像Chrome那样自己初始化它.

问题是,我如何自己初始化它,然后我可以继续.nodeValue = "blahblah"下去?

javascript

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

如何从dijit.form.Select中获取选项文本?

我的页面上有一个dijit.form.Select:

<c:set var="qualId" value="${previous.qualification.id}" />
<select id="qualification" name="qualification" dojoType="dijit.form.Select" onchange="checkForPHD()">
    <option value="-1" label="                      "> </option>
    <c:forEach items="${requestScope.qualifications}" var="qualItem">
        <c:choose>
        <c:when test="${qualId eq qualItem.id}">
            <option value="${qualItem.id}" selected = "selected">${qualItem.name}</option>
        </c:when>
        <c:otherwise>
            <option value="${qualItem.id}">${qualItem.name}</option>
        </c:otherwise>
        </c:choose>
    </c:forEach>
</select>
Run Code Online (Sandbox Code Playgroud)

然后我试图用一些javascript来设置一些文本到从选择框中选择的选项的TEXT;

    function checkForPHD() {    
        dojo.byId('clazzPHDMessage').innerHTML = dojo.byId('qualification')
           .attr('displayedValue');
    }
Run Code Online (Sandbox Code Playgroud)

我读过.attr('displayedValue')假设从dijit.form.Select中的选定选项中获取文本,但它似乎没有做太多?.attr('value')得到了那些值,但是我需要TEXT?

dojo

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

Spring文件上传内容类型验证,总是八位字节流?

我正在尝试在我的 Restful Spring Boot 应用程序中实现 pdf 文件上传。

我有以下方法;

@RequestMapping(value = FILE_URL, method = RequestMethod.POST)
public ResponseDTO submitPDF(
        @ModelAttribute("file") FileDTO file) {

    MediaType mediaType = MediaType.parseMediaType(file.getFile().getContentType());

    System.out.println(file.getFile().getContentType());
    System.out.println(mediaType);
    System.out.println(mediaType.getType());

    if(!"application/pdf".equals(mediaType.getType())) {
        throw new IllegalArgumentException("Incorrect file type, PDF required.");
    }

    ... more code here ...
}
Run Code Online (Sandbox Code Playgroud)

FileDTO 只是 MultipartFile 的包装器。

然后我使用 Postman 用form-databody 发布请求'file'=<filename.pdf>

上面 printlns 中的内容类型始终是八位字节流。无论我发送什么类型的文件(png、pdf 等),它始终是八位字节流。如果我application/pdf在 Postman 中专门设置为 Content-Type 标头,则 FileDTO 中的 MultipartFile 最终为空。

问题是,我的 Spring Controller 方法有问题,还是 Postman 没有正确构建请求?

如果 Postman 无法正确获取 Content-Type,我是否可以期望实际的客户端应用程序将内容类型正确设置为 pdf?

java spring spring-mvc postman spring-rest

3
推荐指数
1
解决办法
9033
查看次数