小编use*_*073的帖子

.htaccess中的Multiviews选项究竟是什么?

我一直在努力解决一个需要重写一个URL添加路径的访问规则.

RewriteRule ^(configuration/.+)$ application-server/$1 [L,NC,R=301,NE]
Run Code Online (Sandbox Code Playgroud)

此规则仅在我的Joomla站点上导致空白页面,没有错误日志或消息.奇怪的是,我完成了所有其他规则:

RewriteRule ^(log/.+)$ application-server/$1 [L,NC,R=301,NE]
RewriteRule ^(monitor/.+)$ application-server/$1 [L,NC,R=301,NE]
Run Code Online (Sandbox Code Playgroud)

最后,我在论坛中发现了使用以下选项的建议:

Options -Multiviews
Run Code Online (Sandbox Code Playgroud)

这实际上解决了这个问题,但是我想知道在使用这个选项时是否会对其他规则产生任何副作用.

.htaccess mod-rewrite

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

Spring启动发现在另一个包上自动装配

我正在开发一个使用一些Spring Data Repository接口的Spring Boot应用程序:

package test;
@SpringBootApplication
public class Application implements CommandLineRunner {

    @Autowired
    private  BookRepository repository;
    . . .
}
Run Code Online (Sandbox Code Playgroud)

我可以看到,如果BookRepository接口与Application类位于同一个包中,则只能注入它(如下所示):

package test;
public interface BookRepository extends MongoRepository<Book, String> {

    public Book findByTitle(String title);
    public List<Book> findByType(String type);
    public List<Book> findByAuthor(String author);

}
Run Code Online (Sandbox Code Playgroud)

我可以在我的类上应用Spring Boot注释,以便能够在另一个包中找到BookRepository吗?

spring-boot

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

使用Java 3驱动程序进行MongoDB更新

我正在切换到MongoDB Java驱动程序版本3.我无法弄清楚如何执行Document的更新.例如,我想更改用户的"年龄":

MongoDatabase db = mongoClient.getDatabase("exampledb");
MongoCollection<org.bson.Document> coll = db.getCollection("collusers");

Document doc1 = new Document("name", "frank").append("age", 55) .append("phone", "123-456-789");
Document doc2 = new Document("name", "frank").append("age", 33) .append("phone", "123-456-789");
coll.updateOne(doc1, doc2); 
Run Code Online (Sandbox Code Playgroud)

输出是:

java.lang.IllegalArgumentException: Invalid BSON field name name
Run Code Online (Sandbox Code Playgroud)

知道怎么解决吗?谢谢!

mongodb-java

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

Quartz vs Java EE 7调度程序


我是一个java EE开发人员,直到现在使用像Quartz这样的框架来安排任务.我可以看到Java EE 7具有ManagedScheduledExecutorService来安排单个或重复任务.由于我从未在实际项目中使用过这个新功能,我想知道当你有一个可移植的方法时,使用Quartz(或其他)还有什么优势吗?
谢谢!

quartz-scheduler java-ee java-ee-7

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

使用JAX-RS 2.0客户端API进行POST

我有一个REST服务,使用表单参数公开POST服务:

@POST
@Path("/add")
@Produces("text/html")
public Response create(@FormParam("key")String key,
            @FormParam("value")String value)
{    
    service.addToList(key,value);    
    return Response.ok(RESPONSE_OK).build();     

} 
Run Code Online (Sandbox Code Playgroud)

我需要找到一种方法来使用JAX-RS客户端API调用此服务.遗憾的是,网上唯一可用的示例使用了传递给Web目标资源的Entity类:

StoreOrder order = new StoreOrder(...);
WebTarget myResource = client.target("http://example.com/webapi/write");
TrackingNumber trackingNumber = myResource.request(MediaType.APPLICATION_XML)
                                   .post(Entity.xml(order), TrackingNumber.class);
Run Code Online (Sandbox Code Playgroud)

知道如何通过单个参数(可能是表单参数)调用我的服务吗?谢谢!

rest java-ee java-ee-7

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

在动作侦听器中使用Lambda表达式

我们在Java中使用了一些广泛使用ActionListeners的套接字API.例如:

SocketServer server = SocketFactory.create().addListener(8888, "localhost")
                .setHandler(new SocketHandler() {

                    public void handle(final ServerExchange exchange)
                            throws Exception {
                        exchange.send("Hello World");
                    }
                }).create();
Run Code Online (Sandbox Code Playgroud)

我想开始使用Lambda表达式简化部分代码.所以我开始使用以下方法重写上面的例子:

SocketServer server = SocketFactory.create().addListener(8888, "localhost")
            .setHandler(new SocketHandler() {
               exchange -> {
                  exchange.send("Hello World");
               }

}).create();
Run Code Online (Sandbox Code Playgroud)

但Eclipse(支持JDK1.8的Luna)抱怨方法句柄(..)没有实现.然而,使用handle方法正是我想要避免实现的....任何想法我该如何解决它?
谢谢!

更新:感谢您的回复.好的SocketHandler是一个接口,但我现在将它包装在功能界面中,如下所示:

@FunctionalInterface

public interface SimpleFuncInterface extends  SocketHandler{

     void handle(ServerExchange exchange) throws Exception;

}
Run Code Online (Sandbox Code Playgroud)

现在我的代码看起来像这样:

SocketServer  server = SocketFactory.create().addListener(8080, "localhost")
                .setHandler(doWork(() -> exchange.send("Hello World"))).create();    

        server.start();
}
private static void doWork(SimpleFuncInterface itf) {


}
Run Code Online (Sandbox Code Playgroud)

代码现在似乎没有错误,但是编译器抱怨Lambda表达式签名与功能接口方法句柄(ServerExchange)的签名不匹配.有什么建议吗?

java lambda java-8

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

AngularJS 使用 REST 服务


我需要编写一个 AngularJS 页面,该页面显示来自 REST 服务的一些 JSON 数据。REST 服务在调用时会显示以下 JSON 示例数据:

[{"key":"ABX1234","value":"Network Hub"}]
Run Code Online (Sandbox Code Playgroud)

这是我用来检索数据的 HTML 页面:

<html ng-app>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
        <script>
        function Hello($scope, $http) {
            $http.get('http://host/json').
                success(function(data) {
                    $scope.json = data;
                });
        }
        </script>
    </head>
    <body>
        <div ng-controller="Hello">
            <p>The ID is {{json.key}}</p>
            <p>The content is {{json.value}}</p>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有任何内容显示为 json.key 或 json.value。你能帮我找出问题所在吗?
谢谢!

angularjs

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

无法加载内置提供程序:org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider


我正在尝试使用 Java 桌面应用程序将一些对象(字符串)发布到部署在 WildFly 应用程序服务器上的 REST 服务。不幸的是,我没有在运行时为客户端提供 Maven,因此我必须手动添加所需的 JAR 文件。然而,即使使用像这样的简单 POST:

public static void testParam() {
    Client client = ClientBuilder.newClient();
    String s="DatiAtto.xml";
    WebTarget myResource = client.target(BASE_URL+"/create");
    Response rs = myResource.request()
    .post(Entity.text(s), Response.class);
}
Run Code Online (Sandbox Code Playgroud)

我得到的回报:
Unable to loadbuiltinprovider: org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider
到目前为止,我已将以下 JAR 文件添加到桌面应用程序:

  • jaxrs-api-3.0.8.Final.jar
  • Resteasy-jaxb-provider-3.0.8.Final.jar
  • resteasy-jackson2-provider-3.0.8.Final.jar
  • Resteasy-client-3.0.8.Final.jar
  • Resteasy-jaxrs-3.0.8.Final.jar

查看它们的内容,类org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider应该被打包到resteasy-jackson2-provider-3.0.8.Final.jar中。为什么没有被加载?

jax-rs resteasy wildfly jakarta-ee

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

使用 asciidoctor 创建自定义 HTML

我正在使用 CMS 来发布我的博客文章。我正在寻找一种从简单文本文件离线创建 HTML 文章的方法。\n这是我通常在文章中使用的一段 HTML:

\n\n
<p>\xc2\xa0We want to show how you can gather information such as the author name:</p>\n<pre class="brush:java">package com.sample;\n\nimport org.apache.camel.builder.RouteBuilder;\nimport org.apache.camel.main.Main;\n\n\npublic class XMLCamel {\n\n    public static void main(String[] args) throws Exception {\n        Main main = new Main();\n\n    }\n}\n\nclass Sample  extends RouteBuilder {\n\n    @Override\n    public void config() throws Exception {\n\n        from("file:/usr/data/files?noop=true")\n            .split(xpath("//catalog/book/author/text()")).to("stream:out"); \n\n    }\n}</pre>\n<p>The above route will print the author names according to the <strong>XPath</strong> query: //catalog/book/author/text()</p>\n<p>The authors will be sent to the Stream.out so you will …
Run Code Online (Sandbox Code Playgroud)

asciidoc asciidoctor

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

MongoDB JSON还是BSON?


我刚学习MongoDB,但我对MongoDB接受的数据格式感到有些困惑.所以我明白这个定义:

"MongoDB实际上并不使用JSON来存储数据;而是使用由MongoDB团队开发的名为BSON的开放数据格式"

这很清楚,但我刚刚了解到你实际上可以将一个JSON文档导入到mongodb中.那么说你可以使用JSON格式将数据插入MongoDB,但出于性能原因将内部数据安排到BSON中是正确的吗?希望有人可以对此有所了解.

mongodb

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