小编zor*_*mic的帖子

Jenkins将war文件部署到Tomcat 8

我在我拥有Tomcat 8的同一台服务器上运行Jenkins 1.6(并尝试使用Jenkins 2.0).我需要将Maven多模块应用程序部署到Tomcat webapp.它有两个必须部署的子模块的war文件.Deploy插件支持最多7个Tomcat,并且工作正常.但问题是我需要使用Tomcat 8,因为我的Web应用程序无法在Tomcat 7上运行.是否可以将warkins文件从Jenkins部署到Tomcat 8?

jenkins jenkins-plugins tomcat8

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

如何在Hibernate Search中搜索带通配符和空格的字段

我有一个执行基于给定的输入标题字段搜索的搜索框,让用户建议先从文字是基于Lucene和Hibernate Search的inserted.It所有可用的标题.它一直工作,直到输入空间.然后结果消失了.例如,我希望"学习H"给我"学习Hibernate"作为结果.但是,这不会发生.你能告诉我我应该在这里使用什么呢?

查询生成器:

QueryBuilder qBuilder = fullTextSession.getSearchFactory()
        .buildQueryBuilder().forEntity(LearningGoal.class).get();
  Query query = qBuilder.keyword().wildcard().onField("title")
        .matching(searchString + "*").createQuery();

  BooleanQuery bQuery = new BooleanQuery();
  bQuery.add(query, BooleanClause.Occur.MUST);
  for (LearningGoal exGoal : existingGoals) {
     Term omittedTerm = new Term("id", String.valueOf(exGoal.getId()));
     bQuery.add(new TermQuery(omittedTerm), BooleanClause.Occur.MUST_NOT);
  }
  @SuppressWarnings("unused")
  org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(
        query, LearningGoal.class);
Run Code Online (Sandbox Code Playgroud)

Hibernate类:

@AnalyzerDef(name = "searchtokenanalyzer",tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
  @TokenFilterDef(factory = StandardFilterFactory.class),
  @TokenFilterDef(factory = LowerCaseFilterFactory.class),
  @TokenFilterDef(factory = StopFilterFactory.class,params = { 
      @Parameter(name = "ignoreCase", value = "true") }) })
      @Analyzer(definition = "searchtokenanalyzer")
public …
Run Code Online (Sandbox Code Playgroud)

java lucene full-text-search hibernate hibernate-search

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

通过 Envoy docker 将 React Web 客户端连接到 gRPC 服务器不起作用

我在 scala Play Framework 中有 gRPC 服务器,它在端口 9000 上公开了 gRPC hello world 示例服务。我正在尝试将它与 React Web 客户端连接。我似乎遇到了部署到 Mac 上 docker 容器的 Envoy 代理的连接问题。

\n

我总是遇到同样的错误,我认为这意味着 Envoy 无法与后端连接:

\n
\xe2\x80\x8bcode: 2\xe2\x80\x8b\nmessage: "Http response at 400 or 500 level"\n\xe2\x80\x8bmetadata: Object {  }\n
Run Code Online (Sandbox Code Playgroud)\n

我用来构建 Envoy 的 docker 文件是:

\n
FROM envoyproxy/envoy:v1.12.2\nCOPY ./envoy.yaml /etc/envoy/envoy.yaml\nCMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml -l trace --log-path /tmp/envoy_info.log\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用这个脚本构建它:

\n
echo --- Building my-envoy docker image ---\ndocker build -t my-envoy:1.0 .\n\necho --- Running my-envoy docker image ---\ndocker run -d -p …
Run Code Online (Sandbox Code Playgroud)

docker grpc grpc-web envoyproxy

5
推荐指数
0
解决办法
708
查看次数

不同的servlet-api版本冲突

我正在使用Maven和Jetty作为服务器开发RestEasy Web服务.其中一个服务应该使用扩展javax.servlet.http.HttpServletResponseWrapper的Filter.问题出在来自servlet-api 2.3的接口javax.servlet.ServletResponse的方法setCharacterEncoding中.我收到以下异常

java.lang.NoSuchMethodError: com.webapp.rest.jsonp.HttpServletResponseContentWrapper.setCharacterEncoding(Ljava/lang/String;)V
Run Code Online (Sandbox Code Playgroud)

我已经将servlet-api 2.4依赖关系作为这个,但也尝试了2.5:

 <web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
Run Code Online (Sandbox Code Playgroud)

Servlet-api 2.4的指定方式如下:

 <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
    <scope>provided</scope>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

我正在使用Maven jetty插件:

 <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.15</version>
<configuration>
 ....
 <exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)

我的RestEasy配置:

 <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
<version>2.2.2.GA</version>
<exclusions>
    <exclusion>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    </exclusion>
Run Code Online (Sandbox Code Playgroud)

但是,在maven存储库中,始终存在2.3和2.4(或2.5)版本.我无法弄清楚这个2.3版本是否带有其他依赖性.有什么建议我怎么能找到这个以及如何强制使用servlet-api 2.4.

我的依赖树看起来如下:

[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.inextweb.ai:inextweb-ai:war:1.0.0-SNAPSHOT
[INFO] +- org.htmlparser:htmlparser:jar:2.1:compile
[INFO] +- org.htmlparser:htmllexer:jar:2.1:compile
[INFO] +- org.htmlparser:thumbelina:jar:2.1:compile
[INFO] +- org.htmlparser:sitecapturer:jar:2.1:compile
[INFO] +- org.htmlparser:filterbuilder:jar:2.1:compile
[INFO] +- net.sf.jung:jung-api:jar:2.0.1:compile
[INFO] |  \- net.sourceforge.collections:collections-generic:jar:4.01:compile
[INFO] +- net.sf.jung:jung-algorithms:jar:2.0.1:compile …
Run Code Online (Sandbox Code Playgroud)

rest jetty maven servlet-filters

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

页面刷新时不会触发 React 客户端上的 Socket.io 断开连接

我有 React.js + Node.js 应用程序,我使用 Socket.io 通知 UI 端后端发生了一些更改,它应该拉取这些更改。我使用客户端 ID 作为套接字中的标识符,因此我不必在服务器端维护用户映射。

当用户登录时,我正在建立连接,并且此工作流程运行良好。当用户刷新页面时就会出现问题。在客户端套接字端的 Chrome 浏览器中,“断开连接”不会被触发,并且套接字不会重新连接。在 FF 中,第一次刷新时会触发断开连接,但客户端不会检索到 joinsuccess,并且客户端不会收到通知。在第二次和以后的每次刷新时,不会触发断开连接。

我的客户代码:

const io = require('socket.io-client');

export default function () {
    const socket = io.connect(process.env.REACT_APP_BACKEND_URL);

    function registerDisconnectHandler(onDisconnect) {
        socket.on('disconnect', () => {
            console.log('Disconnected');
            onDisconnect();
        });
    }
    function registerJoinHandler(onJoinSuccess) {
        socket.on('joinsuccess', (msg) => {
            console.log('join success');
            onJoinSuccess(msg);
        });
    }
    function joinNotification(channel, cb) {
        console.log(`emit join for channel:${JSON.stringify(channel)}`);
        socket.emit('joinnotificationpharmacy', channel, cb);
    }
    function registerNotificationHandler(onNotificationReceived) {
        socket.on('notification', (notification) => {
            onNotificationReceived(notification);
        });
    }
    socket.on('error', (err) => { …
Run Code Online (Sandbox Code Playgroud)

sockets websocket node.js socket.io reactjs

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