小编Deb*_*Deb的帖子

java.lang.NoSuchMethodError:org.slf4j.spi.LocationAwareLogger.log

我在部署应用程序时遇到此错误

    java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Ma
      rker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
        at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocat
        ionAwareLog.java:141)
        at org.springframework.web.context.ContextLoader.initWebApplicationConte
        xt(ContextLoader.java:272)      
Run Code Online (Sandbox Code Playgroud)

我正在使用maven而这是我的pom.xml

    <properties>
    <!-- Using this GWT version -->
    <gwt.version>2.4.0</gwt.version>

    <!-- Using this Jackrabbit version -->
    <jcr.version>1.6.5</jcr.version>

    <!-- Using this Spring version -->
    <spring.version>3.1.0.RELEASE</spring.version>
    <spring.security.version>3.1.0.RELEASE</spring.security.version>

    <!-- Apache CXF -->
    <cxf.version>2.5.1</cxf.version>

    <!-- Apache POI -->
    <poi.version>3.8</poi.version>

    <!-- Milton WebDAV -->
    <milton.version>1.8.1.3</milton.version>

    <!-- Tell the compiler we can use 1.6 -->
    <java.compiler>1.6</java.compiler>

     <!-- Default source encoding ${default.encoding} -->
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

    <repositories>
     <!-- Needed for org.jbpm & org.hibernate-->
    <repository>
      <id>jboss.org</id>
      <name>JBoss Maven Repository</name>
      <url>http://repository.jboss.org/nexus/content/groups/public</url> …
Run Code Online (Sandbox Code Playgroud)

gwt spring maven

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

使用改进无法正常工作从Android通过Rest Web服务登录

我正在使用Retrofit 2制作一个Android应用程序.我的REST Api都是用Liferay编写的.现在在Liferay中,我所看到的是,访问我们需要首先进行身份验证的Web服务.所以我已经这样认证了

http://test:q1w2e3r4@192.168.0.110:8080/liferay-portlet/api/secure/jsonws/
Run Code Online (Sandbox Code Playgroud)

Liferay有自己的用户身份验证方法,我们已经覆盖了.我检查了Postman的Web服务调用工作正常.

URL:http://test:q1w2e3r4@192.168.0.110:8080/liferay-portlet/api/secure/jsonws/customuserauthentication/authenticate-by-user-name
Run Code Online (Sandbox Code Playgroud)

形式编码的值

companyId:10154
screenName:xyz
password:xyz
active:true
Run Code Online (Sandbox Code Playgroud)

如果我把它放在邮递员中,它会正确地获取json响应.

现在,当我从我的Android代码中调用相同的内容时,我得到一个响应"未经授权".

我的改造服务

public interface LoginApi {    
    @FormUrlEncoded
    @POST("/liferay-portlet/api/secure/jsonws/customuserauthentication/authenticate-by-user-name")
    Call<User> login(@Field("companyId")long companyId,@Field("screenName")String screenName,@Field("password")String password,@Field("active")boolean active);
}
Run Code Online (Sandbox Code Playgroud)

我的RestApiManager类(此类用于调用服务接口并创建改造构建器)

public class RestApiManager {

    private LoginApi loginApi;

    public LoginApi login() {
        if (loginApi==null) {
            GsonBuilder gson=new GsonBuilder();
            gson.registerTypeAdapter(String.class, new StringDeserializer());
            Retrofit retrofit=new Retrofit.Builder()
                .baseUrl("http://test:q1w2e3r4@192.168.0.110:8080")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
            loginApi=retrofit.create(LoginApi.class);
    }
    return loginApi;
}
Run Code Online (Sandbox Code Playgroud)

调用RestApiManager

Call<User> callUser=restApiManager.login().login(loginData.getCompanyId(),loginData.getScreenName(),loginData.getPassword(),loginData.isActive());
callUser.enqueue(new Callback<User>() {
    @Override
    public void onResponse(Response<User> response, Retrofit retrofit) {
        Log.d("Login","Login Response:"+response.body());
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

rest android liferay-6 retrofit

14
推荐指数
2
解决办法
2183
查看次数

有没有办法对数组进行混洗,以便没有两个连续的值相同?

我有一系列颜色可以填充饼图作为游戏微调器.我不希望相同的颜色彼此相邻,在圆圈中形成一个巨大的块.

我的数组看起来像这样:

var colors = ["blue", "red", "green", "red", "blue", "blue", "blue", "green"]
Run Code Online (Sandbox Code Playgroud)

问题当然是有三个蓝调在一起.Swift中是否有任何内容可以让我在总分布中平均(或尽可能接近)扩散值并避免它们相邻?

我可以使用以下代码测试匹配,但重新排列它们会证明有点困难.

var lastColor = "white"

for color in colors {
    if color == lastColor {
        print("match")
    }
    lastColor = color    
}
Run Code Online (Sandbox Code Playgroud)

更新:

为了制作我的colors数组,我从每种颜色的空格数开始.它看起来像这样:

let numberOfReds = 2
let numberOfGreens = 2
let numberOfBlues = 4

let spaces = numberOfReds + numberOfGreens + numberOfBlues

for _ in 0..< spaces {
    if numberOfReds > 0 {
        numberOfReds -= 1
        colors.append("red")
    }
    if numberOfGreens > 0 { …
Run Code Online (Sandbox Code Playgroud)

random distribution swift

11
推荐指数
2
解决办法
1360
查看次数

Joda Time和hibernate 4

我正在使用hibernate 4和joda时间和spring数据jpa.Spring数据提供注释

@CreadedOn
@LastModifiedOn
Run Code Online (Sandbox Code Playgroud)

我试图使用这两个注释.Below是我的pojo的快照

@Entity
@Table(name="restaurant")
@Audited
public class Restaurant {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

private String restaurantName;

@CreatedDate
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
 // @Type(type = "org.jadira.usertype.dateandtime.threetenbp.PersistentDateTime")
private DateTime createdOn;

@LastModifiedDate
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
 // @Type(type = "org.jadira.usertype.dateandtime.threetenbp.PersistentDateTime")
private DateTime modifiedOn;
}
Run Code Online (Sandbox Code Playgroud)

根据提供的用户类型jodatime的说明,我已经注释了我的属性.@Type但仍然没有运气.每次我使用@Type注释并部署它我的服务器上出现错误

严重:错误listenerStart

完整堆栈跟踪如下

    Jan 15, 2014 11:40:00 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive G:\apache-tomcat-7.0.47\webapps\base-spr
ing-data-jpa.war
Jan 15, 2014 11:40:00 AM org.apache.catalina.loader.WebappClassLoader validateJa
rFile
INFO: validateJarFile(G:\apache-tomcat-7.0.47\webapps\base-spring-data-jpa\WEB-I
NF\lib\javax.servlet-api-3.1.0.jar) - …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa jodatime spring-data

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

Google Analytics跟踪器不适用于Android应用

我在我的应用中加入了Google分析.但是当我创建Tracker跟踪器的对象时不起作用

我的一项活动中的代码

    @Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    try{
        tracker=((GoogleAnalyticsConfig)this.getApplication()).getTracker(GoogleAnalyticsConfig.TrackerName.APP_TRACKER);
        tracker.setScreenName("HomeActivity");
        tracker.send(new HitBuilders.AppViewBuilder().build());
    }catch(Exception ex)
    {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在使用此代码,我在实时跟踪中看不到该应用程序,但如果我用此更改上述代码

@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    try{
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
        analytics.reportActivityStart(this);
    }catch(Exception ex)
    {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以看到一个用户在Realtime中处于活动状态

代码 GoogleAnalyticsConfig

  public enum TrackerName {
    APP_TRACKER, // Tracker used only in this app.
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
  } …
Run Code Online (Sandbox Code Playgroud)

android google-analytics google-analytics-firebase

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