小编use*_*152的帖子

在AsyncTask内部进行改造调用

我最近开始开发Android应用程序并决定使用Retrofit作为REST服务的客户端,但我不确定我的方法是否良好:

一世.我已经实现了对我的api的异步调用,它在AsyncTask的doInBackground方法中调用.该关注:看了这篇文章让我困惑.AsyncTasks不适合这类任务吗?我应该直接从Activity调用API吗?我知道Retrofit的回调方法是在UI线程上执行的,但是通过HTTP调用呢?Retrofit是否为此创建线程?

II.我希望AuthenticationResponse保存在SharedPreferences对象中,该对象在回调的success方法中似乎不可用.有什么建议/良好做法吗?

先感谢您 :)

这是我的doInBackGroundMethod:

    @Override
    protected String doInBackground(String... params) {
        Log.d(LOCATION_LOGIN_TASK_TAG, params[0]);

        LocationApi.getInstance().auth(new AuthenticationRequest(params[0]), new Callback<AuthenticationResponse>() {

            @Override
            public void success(AuthenticationResponse authenticationResponse, Response response) {
                Log.i("LOCATION_LOGIN_SUCCESS", "Successfully logged user into LocationAPI");
            }

            @Override
            public void failure(RetrofitError error) {
                Log.e("LOCATION_LOGIN_ERROR", "Error while authenticating user in the LocationAPI", error);
            }
        });
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask retrofit

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

CORS:AngularJS + Resteasy 3 + Wildfly

我正在使用AngularJS和Resteasy开发一个应用程序.正如所料,我面临众所周知的问题

XMLHttpRequest cannot load http://localhost:8080/..... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 403.

正如在其他堆栈溢出帖[1]上看到的,我尝试使用来自Feature对象的Resteasy的CorsFilter,但我得到:

[33m02:06:57,883 WARN  [org.jboss.resteasy.core.ExceptionHandler] (default task-1) failed to execute: javax.ws.rs.ForbiddenException: Origin not allowed: http://localhost:3000
    at org.jboss.resteasy.plugins.interceptors.CorsFilter.checkOrigin(CorsFilter.java:194)
    at org.jboss.resteasy.plugins.interceptors.CorsFilter.filter(CorsFilter.java:134)
Run Code Online (Sandbox Code Playgroud)

我的CorsFeature对象:

@Provider
public class CorsFeature implements Feature {

    @Override
    public boolean configure(FeatureContext context) {
        CorsFilter corsFilter = new CorsFilter();
        corsFilter.getAllowedOrigins().add("*");
        context.register(corsFilter);
        return true;
    }  
}
Run Code Online (Sandbox Code Playgroud)

web.xml中我添加了:

<context-param>
    <param-name>resteasy.providers</param-name> …
Run Code Online (Sandbox Code Playgroud)

jboss resteasy cors angularjs

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

Hibernate javax.persistence.RollbackException:提交事务时出错

我正在使用Hibernate和MySQL开发一个java Web应用程序.有时当我尝试持久化时,我得到这个回滚异常:

javax.persistence.RollbackException: Error while committing the transaction
    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:94)
    at com.tulips.dao.CommentDao.saveOrUpdate(CommentDao.java:42)
    at com.tulips.servlets.CommentsServlet.doPost(CommentsServlet.java:168)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:155)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55)
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1222)
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:425)
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177)
    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:77)
    ... 23 …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate jpa

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

Jackson 自定义序列化 getter

假设我有一个像这样的 POJO:

public class User {
     private Long id;
     private String username;

     // usual getters and setters
     ....

     // only for serialisation purposes
     public String getUpperUsername() {
         return this.id % 2 == 0 ? username : username.toUpperCase();
     }


}
Run Code Online (Sandbox Code Playgroud)

我想制作一个条件序列化器,以便在满足某些条件时序列化与实际值不同的值。

我查看了@JsonGetter,但显然它已被弃用,@JsonProperty 似乎不起作用。

你有什么主意吗?

先感谢您 :)

java json jackson

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

AngularJS ng-show无法正常工作

我是棱角分明的新手,已经因为简单的演出不能按预期工作而感到沮丧.

我想显示/隐藏一个div取决于一个标志的状态(flightsProcessed)

fp: {{flightsProcessed}}
<div class="container-fluid" ng-show="flightsProcessed">
        aaa
    </div>
Run Code Online (Sandbox Code Playgroud)

我有一个控制器,在开始时有类似的东西:

$scope.flightsProcessed = false;
Run Code Online (Sandbox Code Playgroud)

之后,在$ http.success()触发的另一个函数中,我执行以下操作:

$scope.flightsProcessed = true;
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么当flightProcessed = true时不显示div虽然当我在它上面打印时,flightsProcessed = true?

我试过使用$ apply但是我得到< $digest already in progress>

我究竟做错了什么?谢谢.

angularjs

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

Spring MVC + Hibernate&Jackson =无法编写JSON:无限递归

我知道这已被问过很多次了,解决方案非常明显,但在我的情况下它并没有真正起作用,我无法弄清楚如何解决它.

问题:Could not write JSON: Infinite recursion (StackOverflowError)

设置如下:

员工属于部门.(ManyToOne)部门有一名员工担任经理.(OneToOne)

我不想在部门中有一个@OneToMany列表,因此缺少了拥有方.员工有一个部门对象,但这是它所属的部门,而不是他管理的部门.

Employee.java

@Entity
@Table(name = "ts_employee")
//@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class,property="@emp_id")
public class Employee extends AbstractEntity {

    @ManyToOne
    @JoinColumn(name = "dept_id")
    @JsonManagedReference
    private Department department;

    ... getters and setters
}
Run Code Online (Sandbox Code Playgroud)

Department.java

@Entity
@Table(name = "ts_department")
//@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@dept_id")
public class Department extends AbstractEntity {

    @OneToOne
    @JoinColumn (name = "manager_id")
    @JsonBackReference
    private Employee manager;

    .. other fields.. getters and setters
}
Run Code Online (Sandbox Code Playgroud)

AbstractEntity.java

@MappedSuperclass
public class AbstractEntity implements Serializable {

    @Id
    @GeneratedValue()
    private Long id; …
Run Code Online (Sandbox Code Playgroud)

java spring json hibernate

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