小编djn*_*jna的帖子

使用POST创建请求,响应代码为200或201以及内容

假设我编写了一个REST服务,其目的是将新数据项添加到系统中.

我计划发帖到

http://myhost/serviceX/someResources
Run Code Online (Sandbox Code Playgroud)

假设有效,我应该使用什么样的响应代码?我可以回复什么内容.

我正在查看HTTP响应代码的定义并看到这些可能性:

200:返回描述或包含动作结果的实体;

201:这意味着创建.含义*请求已完成,并导致创建新资源.新创建的资源可以由响应实体中返回的URI引用,其中由Location头字段给出的资源的最具体URI.响应应该包括一个实体,其中包含资源特征和位置的列表,用户或用户代理可以从中选择最合适的资源特征和位置.实体格式由Content-Type头字段中给出的媒体类型指定.*

后者听起来更符合Http规范,但我一点也不清楚

响应应该包括一个包含资源特征和位置列表的实体

手段.

建议?解释?

rest content-type http-status-codes

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

避免裂脑,投票和法定人数

假设您有n个进程,n> 2.您希望在它们之间达成协议,即一个进程是活动的.所以他们需要彼此投票以确定哪一个是活跃的.

所有进程都可能随时失败,我们希望尽可能让一个进程处于活动状态,但......

我们必须永远不要同时有两个活跃,所以如果他们不能确定没有一个活跃的更好.(即我们想避免裂脑)

它们之间唯一可用的通信机制是pub-sub消息传递(不是点对点).

可以使用一个或多个数据库,但没有一个数据库应该是单点故障.IE浏览器.如果所有流程都可以工作,那将是非常不受欢迎的,并且由于丢失了单个数据库而无法这样做.

设计?需要发布什么消息?

messaging

14
推荐指数
1
解决办法
7633
查看次数

.NET和C#异常.抓住什么是合理的

免责声明,我来自Java背景.我没有做太多的C#.这两个世界之间存在大量的转移,但当然存在差异,其中一个是异常倾向于被考虑的方式.

我最近回答了一个C#问题,建议在某些情况下,这样做是合理的:

 try {
   some work
 } catch (Exeption e) {
       commonExceptionHandler();
 }
Run Code Online (Sandbox Code Playgroud)

(原因不重要).我收到的答复我不太明白:

直到.NET 4.0,捕获异常非常糟糕.这意味着你可以捕获各种低级致命错误,从而掩盖错误.它还意味着如果某种类型的损坏触发了这样的异常,堆栈上的任何打开的finally块都将被执行,所以即使callExceptionReporter函数尝试记录并退出,它甚至可能无法到达那一点( finally块可能再次抛出,或导致更多损坏,或从磁盘或数据库中删除重要的东西).

我可能比我意识到的更困惑,但我不同意其中的一些.请其他人评论.

  1. 我知道有很多低级别的例外我们不想接受.我的commonExceptionHandler()函数可以合理地重新抛出那些.这似乎与对相关问题的答案一致.这说"根据你的上下文,使用catch(...)是可以接受的,只要重新抛出异常即可." 所以我总结使用catch(Exception)并不总是邪恶,默默地吞下某些例外.

  2. 短语"在.NET 4之前它对Catch Exception来说非常糟糕".NET 4中有哪些变化?这是对AggregateException的引用,它可能会给我们一些与我们捕获的异常有关的新事物,但我不认为更改是基本的"不要吞下"规则.

  3. 下一句话真的很麻烦.这可能是对的吗?

它还意味着如果某种类型的损坏触发了这样的异常,堆栈上的任何打开的finally块都将被执行(finally块可能再次抛出,或导致更多损坏,或从磁盘或数据库中删除重要的东西)

我的理解是,如果有一些低级代码

lowLevelMethod() {
    try {
        lowestLevelMethod();
    } finally {
         some really important stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中我调用lowLevel();

 try {
      lowLevel()
 } catch (Exception e) {
       exception handling and maybe rethrowing
 }
Run Code Online (Sandbox Code Playgroud)

无论我是否捕获异常,这对于finally块的执行都没有任何影响.当我们离开lowLevelMethod()时,finally已经运行了.如果最终要做任何坏事,比如我的磁盘损坏,那么它会这样做.我捕捉异常没有任何区别.如果它到达我的异常块我需要做正确的事情,但我不能成为dmis执行最终的原因

c# exception-handling

12
推荐指数
3
解决办法
1094
查看次数

GitLab CI - 添加标签时避免构建

添加 git 标签时如何防止触发 gitlab ci 管道?我在本地运行此命令(而不是在 gitlab-ci 作业中)

git tag -a "xyz"
Run Code Online (Sandbox Code Playgroud)

然后推动标签;这会触发各种管道。我想从运行中排除其中一些管道。

我想从这样的问题的思想变化这个; 这个问题是使用,我想排除,所以我想除了。那里的答案有两种变体,一种有参考,一种没有。

build:  
  # ... my work here ...  
  except:
    - tags


build:  
  # ... my work here ...  
  except:
    refs:
      - tags
Run Code Online (Sandbox Code Playgroud)

两者似乎都没有任何效果;我添加了一个标签,构建仍然发生。

我的理解在这里可能完全错误,因为标签这个词似乎有三种可能的含义,并且在阅读文档或示例时,我并不总是确定哪种含义适用:

  1. 使用git tag应用的Git 标签
  2. Gitlab CI 标签用于确定哪些跑步者选择工作
  3. 用于通过 REST API 触发管道的提交的引用标识符。这通常是一个分支名称,但也可以是一个 git 标签。

我有兴趣控制如果第一种情况会发生什么。到目前为止,从评论中可以清楚地看出“除了:-tags”与我的情况无关,那么有没有可行的方法?

git gitlab gitlab-ci

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

Dojo dojo.rawXhrPost和dojo.xhrPost

我的问题是:我们可以使用dojo.xhrPost发布一些Json数据吗?更多详情:

我一直在尝试使用Dojo代码将JSON数据POST到RESTful服务.似乎dojo.xhrPostdojo.rawXhrPost的行为是不同的,或者更准确的rawXhrPost()起作用而xhrPost()不起作用.这与我对文档的阅读不一致

dojo.rawXhrPost的最初目的是一种可用于将原始帖子主体发送到服务器的方法.从1.3开始,此函数与dojo.xhrPost()相同.因此,对于dojo.rawXhrPost()的使用,请参阅dojo.xhrPost()

这意味着xhrPost()就足够了.我的代码看起来像这样 - 我有一个管理Editions of Books的"玩具"图书馆服务.代码想要POST一个新条目,

        var myEdition = {"Edition":{"isbn":"44"}};

        var xhrArgs = {
            url: "http://localhost:8081/LibraryWink/library/editions",
            postData: dojo.toJson(myEdition),
            handleAs: "json",
            headers: { "Content-Type": "application/json"},

            load: function(data) {
                dojo.byId("mainMessageText").innerHTML = "Message posted.";
            },
            error: function(error) {

                dojo.byId("mainMessageText").innerHTML = "Error :" + error;
            }
        };

        var deferred = dojo.rawXhrPost(xhrArgs);
Run Code Online (Sandbox Code Playgroud)

头:{"内容类型":"应用/ JSON"}中不可或缺的一部分,使我的JAX-RC服务的理解是,内容是JSON.

我发现上面的代码完美无缺.但是如果相反我说:

var deferred = dojo.xhrPost(xhrArgs);
Run Code Online (Sandbox Code Playgroud)

POST中没有数据传输.我有一个TCP/IP监视器,可以看到没有任何传输.

那么,这是一个错误,还是我错误地驾驶xhrPost()?或者我应该使用rawXhrPost()?如果是后者,我们在什么情况下使用XhrPost这两种口味?

dojo json

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

JavaScript/Dojo模块模式 - 如何调试?

我正在使用Dojo并使用Mastering Dojo中描述的"模块模式" .到目前为止,我可以看到这种模式是一种通用的,广泛使用的JavaScript模式.我的问题是:我们如何调试我们的模块?

到目前为止,我还没能说服Firebug向我展示我的模块的来源.Firebug似乎只显示用于执行工厂方法的dojo eval语句.因此,我无法单步执行我的模块源代码.我试过在我的模块代码中加入"调试器"语句,Firebug似乎正常停止,但没有显示源代码.

下面的示例代码.这只是一个足够复杂的例子,使调试的需要变得合理,它并不是有用的代码.

这页纸

<!--
  Experiments with Debugging
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head> 
    <title>console me</title>

    <style type="text/css">
      @import "../dojoroot/dojo/resources/dojo.css";
      @import "../dojoroot/dijit/themes/tundra/tundra.css";
      @import "edf.css";
    </style>    

    <script type="text/javascript" src="../dojoroot/dojo/dojo.js">
    </script>

    <script type="text/javascript" >
      dojo.registerModulePath("mytest", "../../mytest");

      dojo.require("mytest.example");

      dojo.addOnLoad(function(){
         mytest.example.greet();                     
      });
    </script>

  </head>
  <body class="tundra">
    <div id="bulletin">
      <p>Just Testing</p>
    </div>
  </body>
</html>
<!-- END: snip1 -->
Run Code Online (Sandbox Code Playgroud)

我想调试的java脚本

dojo.provide("mytest.example");
dojo.require("dijit.layout.ContentPane");

/**
 * define module
 */
(function(){
      //define the main program functions...
      var example= mytest.example;
      example.greet= …
Run Code Online (Sandbox Code Playgroud)

javascript debugging dojo

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

Java字符串池对象创建

我怀疑我的概念在字符串池中是否清晰.请研究以下一组代码,并检查我的答案在以下一组陈述后创建的对象数量是否正确: -

1)

String s1 = "abc";
String s2 = "def";
s2 + "xyz";
Run Code Online (Sandbox Code Playgroud)

2)

 String s1 = "abc";
 String s2 = "def";
 s2 = s2 + "xyz";
Run Code Online (Sandbox Code Playgroud)

3)

String s1 = "abc";
String s2 = "def";
String s3 = s2 + "xyz";
Run Code Online (Sandbox Code Playgroud)

4)

String s1 = "abc";
String s2 = "def";
s2 + "xyz";
String s3 = "defxyz";
Run Code Online (Sandbox Code Playgroud)

根据我所知的概念,在上面的4个案例中,在执行每组行之后将创建4个对象.

java string

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

dojo build - nls bundle,构建失败,除非bundle在"dojo/dojo"中?

这是我得到的构建失败的升华.症状是,当使用shrinksafe进行优化时,我的构建将失败,并显示错误:

 [exec] js: "<eval'ed string>#1(Function)#1(eval)", line 127: uncaught JavaScript runtime exception: TypeError: Cannot read property "1" from null
 [exec]     at <eval'ed string>#1(Function)#1(eval):127
 [exec]     at <eval'ed string>#1(Function)#1(eval):163
Run Code Online (Sandbox Code Playgroud)

如果我的代码在其nls文件中使用如下模式

"dojo/i18n!./nls/MyResource"
Run Code Online (Sandbox Code Playgroud)

但是,这个构造在很多dojo代码中很常见,它们构建得很干净.所以我通过将一些dojo代码复制到我的模块中进行了实验,发现如果将nls资源加载到dojo/dojo层中,那么我的图层构建正确,如果我在自己的图层中加载了相同的nls资源,那么我们就会失败.

因此,我将dijit/form/_ComboBoxMenuMixin.js复制到我自己的模块以及相应的nls资源.

我有三个测试用例,一个工作,另外两个给出上面的失败.

我的问题:

似乎我需要在"dojo/dojo"层中包含我自己的nls资源,它必须恰好是这一层.当然这不可能是对的吗?我有什么选择?

工作简介:

layers: {
"dojo/dojo" : {
    customBase: false,
    include: [         
              "modules/nls/ComboBox",
    ],
    exclude: []
},
"MyLayer" : {
    customBase: false,
    include: [                            
              "modules/ComboCopy",                      
    ],
    exclude: []
},
}
Run Code Online (Sandbox Code Playgroud)

失败:同一层中的nls

layers: {
"dojo/dojo" : {
    customBase: false,
    include: [         

    ],
    exclude: []
},
"MyLayer" : {
    customBase: false, …
Run Code Online (Sandbox Code Playgroud)

dojo dojo-build

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

servlet 检查参数

所以我有一个很长的查询字符串,可以是......

//url=z&surl=y&time=z&codec=a264&acodec=mp3&width=400x100 或者 //url=z&surl=y&time=z&optlevel=w

我使用 request.getQueryString("url") 来检查 a) qs 是否在那里 b) 确保它不为空。这一切都导致了一大堆乱七八糟的 if 语句。我只是想知道是否有更好的方法来做到这一点。

例子..

if(request.getParameter("originalURL") != null &&
        request.getParameter("originalURL").equals("") && ................) 
Run Code Online (Sandbox Code Playgroud)

谢谢你们

java servlets

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

如何从java应用程序中使用OSGi

我是OSGi的新人,但很有意思.是否可以在osgi bundle和java应用程序之间进行交互?如果有可能,怎么样?谢谢!

上下文是我有一个很大的Java SE应用程序(作者是另一个程序员),有许多依赖项.首先,我的目标是添加新功能和第二次更改架构.我将尝试使用OSGi,但我不想两次编写代码,因此我想编写新代码作为bundle.但是使用旧应用程序中的这个新功能.

java osgi equinox

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