小编Ter*_*rry的帖子

Spring Rest服务和Jersey Rest服务以及Spring + Jersey解决方案有什么区别?

我想构建一个宁静的服务/ API.我使用了一些像play这样的框架来构建它,但我想尝试其他更有效的方法.我听说Jersey是用于构建其余API的通用库,而Spring也是一个很好的框架.但我也看到了像Spring + Jersey这样的解决方案.因此,我对其他API解决方案感到有点困惑.

谁能告诉我这些有什么区别?Jersey REST,Spring Rest和Spring + Jersey Rest?

我的目标是构建一些以json作为输入/输出的rest API.我有jar文件作为后端进程逻辑来处理输入json/object并返回json/object.

非常感谢.

api rest spring json jersey

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

如何在JAVA中使静态方法线程安全?

我正在创建一个Web应用程序并遇到线程安全问题.在阅读了几个类似的问题之后,我仍然对我的案子感到困惑.我正在使用java spring框架来设置REST Web服务.所有请求(Person对象的JSON)都将传递给checkIfGoodName函数,就像Checker.checkIfGoodName(person).它们都是静态方法调用.我想知道,这个功能,Checker.checkIfGoodNameTHREAD SAFE?如果没有,如何修改代码?我的代码如下:

Checker.java

public class Checker {

    public static void checkIfGoodName(Person person){

        checkingName(Person person);

    }

    private static void checkingName(Person person){

        if(person.getName()==null){
            PersonUtils.addErrorMessage(Person person, new String("Name is empty"));
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

PersonUtils.java

public class PersonUtils {

     public static void addErrorMessage(Person person, String errorMessage){

         List<Message> msg = person.getMessageList();
         if(msg!=null){
             msg.add(buildMessage(errorMessage));
         }
     }

     public static void buildMessage(String errorMessage){
         if(errorMessage != null){
             Message msg = new Message();
             msg.setMsg(errorMessage);
         } 
     }

}
Run Code Online (Sandbox Code Playgroud)

java multithreading static-methods thread-safety

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

从 json 字符串反序列到对象时如何忽略 null?

我有一个类定义如下:

// Ignore all the unknown properties in input JSON
@JsonIgnoreProperties(ignoreUnknown = true)

// Only include non null values in deserialized Java object.
@JsonInclude(value = Include.NON_NULL)
public class Person {


@JsonProperty("person_id")
private String personId;

@JsonProperty("school")
private String school;

@JsonProperty("hobbies")
private Map<String, List<AttributeBag>> hobbies = new   HashMap<String, List<AttributeBag>>();

@JsonProperty("tasks")
private Map<String, Map<String, AttributeBag>> tasks = new HashMap<String, Map<String, AttributeBag>>();



 public Map<String, List<AttributeBag>> getHobbies() {
    return hobbies;
}


   public Person(String person_id, String school) {
    super();
    this.person_id = person_id;
    this.school = school;

} …
Run Code Online (Sandbox Code Playgroud)

java serialization json deserialization

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

Django API Post方法返回403错误

我正在尝试设置Django API(POST API端点).我希望有相同的URL路径指向同一个处理不同的函数,因为它是POST或GET.因此,我使用了这样的方法

def handle_post(request):

    dict = {}
    dict['email'] = "test"

    if request.method == "POST":
        return HttpResponse(json.dumps(dict), content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

在url.py中,我有以下代码

router = routers.DefaultRouter()
router.register(r'notes', UsernotesViewSet)
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^admin/', include(admin_site.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^docs/', include('rest_framework_swagger.urls')),
url(r'^example/postrequest', handle_post),
)
Run Code Online (Sandbox Code Playgroud)

但是当我在URL http://127.0.0.1:8000/example/postrequest?requestid=abc&starthour=10上执行POST时,我无法完成这项工作 .我没有发布任何内容,只是在httpclient上将方法从GET更改为POST以尝试此API.如果我没有将任何内容发布到URL,这样可以吗?

我收到403错误,如下所示:

禁止(403)
CSRF验证失败.请求中止.
您看到此消息是因为此站点在提交表单时需要CSRF cookie.出于安全原因,需要此cookie,以确保您的浏览器不会被第三方劫持.如果您已将浏览器配置为禁用cookie,请重新启用它们,至少对于此站点或"同源"请求.

感谢任何帮助.

python django http-post http-status-code-403

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

如何在Python中从HDFS序列文件加载数据

我正在运行一个地图缩减程序来读取 HDFS 文件,如下所示:

hadoop jar /opt/mapr/hadoop/hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-dev-streaming.jar -Dmapred.reduce.tasks=1000  -file $homedir/mapper.py -mapper $homedir/mapper.py -file $homedir/reducer.py -reducer $homedir/reducer.py   -input /user/data/* -output /output/ 2> output.text
Run Code Online (Sandbox Code Playgroud)

有什么需要确认的,路径 /user/data/* 包含包含文件的文件夹, /user/data/* 将迭代所有子文件夹下的所有文件,对吗?

hdfs 文本文件的每一行都包含一个 JSON 字符串,因此映射器读取该文件如下:

for line in sys.stdin:
    try:
        object = json.loads(line)
Run Code Online (Sandbox Code Playgroud)

但 HDFS 的所有者将文件从文本更改为序列文件。我发现mapreduce程序输出了很多零大小的文件,这可能意味着它没有成功从HDFS读取文件。

我应该对代码进行哪些更改才能从序列文件中读取内容?我还有一个 HIVE 外部表来根据 mapreduce 的输出执行聚合和排序,并且 HIVE 之前是 STORED AS TEXTFILE ,我应该更改为 STORED AS SEQUENCEFILE 吗?

谢谢,

python hadoop hive mapreduce sequencefile

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