发送消息报错WARN No appenders could be found for logger (cn.jiguang.common.connection.NativeHttpClient).

mxq622425
2019-09-09 01:29 344 0
public class JPushUtil {

     // 设置好账号的app_key和masterSecret是必须的
    private static String APP_KEY = "208432b22e7ce65bf7e314ad";
    private static String MASTER_SECRET = "cc2d495d5b118365533f5c9a";


    //极光推送>>Android
    //Map<String, String> parm是我自己传过来的参数,可以自定义参数
    public static void jpushAndroid(Map<String, String> parm) {

        //创建JPushClient(极光推送的实例)
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        //推送的关键,构造一个payload
        PushPayload payload = PushPayload.newBuilder()
                .setPlatform(Platform.android())//指定android平台的用户
                .setAudience(Audience.all())//你项目中的所有用户
//                .setAudience(Audience.alias(parm.get("alias")))//设置别名发送,单发,点对点方式
                //.setAudience(Audience.tag("tag1"))//设置按标签发送,相当于群发
//                .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户

                .setNotification(Notification.android(parm.get("msg"), parm.get("title"), parm))  //发送内容
                .setOptions(Options.newBuilder().setApnsProduction(true).setTimeToLive(7200).build())
                // apnProduction指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式) 不用设置也没关系
                // TimeToLive 两个小时的缓存时间
                .setMessage(Message.content(parm.get("msg")))//自定义信息
                .build();

        try {
            PushResult pu = jpushClient.sendPush(payload);
            System.out.println(pu.toString());
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }

    //极光推送>>ios
    //Map<String, String> parm是我自己传过来的参数,可以自定义参数
    public static  void jpushIOS(Map<String, String> parm) {

        //创建JPushClient
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        PushPayload payload = PushPayload.newBuilder()
                .setPlatform(Platform.ios())//ios平台的用户
                .setAudience(Audience.all())//所有用户
                //.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setAlert(parm.get("msg"))
                                .setBadge(+1)
                                .setSound("happy")//这里是设置提示音(更多可以去官网看看)
                                .addExtras(parm)
                                .build())
                        .build())
                .setOptions(Options.newBuilder().setApnsProduction(false).build())
                .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
                .build();

        try {
            PushResult pu = jpushClient.sendPush(payload);
            System.out.println(pu.toString());
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }



    //极光推送>>All所有平台
    public static void jpushAll(Map<String, String> parm) {

        //创建JPushClient
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        //创建option
        PushPayload payload = PushPayload.newBuilder()
                .setPlatform(Platform.all())  //所有平台的用户
                .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder() //发送ios
                                .setAlert(parm.get("msg")) //消息体
                                .setBadge(+1)
                                .setSound("happy") //ios提示音
                                .addExtras(parm) //附加参数
                                .build())
                        .addPlatformNotification(AndroidNotification.newBuilder() //发送android
                                .addExtras(parm) //附加参数
                                .setAlert(parm.get("msg")) //消息体
                                .build())
                        .build())
                .setOptions(Options.newBuilder().setApnsProduction(true).build())//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
                .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
                .build();
        try {
            PushResult pu = jpushClient.sendPush(payload);
            System.out.println(pu.toString());
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }

    /**
     * 向指定序列号的用户推送消息
     * @param alias 用户序列号
     * @param msgTitle 消息头
     * @param contnet 消息内容
     * @param parm
     */
    public static void jpush(String alias, String msgTitle, String contnet,
            Map<String, String> parm) {
        // 创建JPushClient
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        PushPayload payload = PushPayload.newBuilder().setPlatform(
                Platform.android_ios())
                // 平台的用户
                .setAudience(Audience.alias(alias)).setNotification(
                        Notification.newBuilder().addPlatformNotification(
                                AndroidNotification.newBuilder().setAlert(
                                        msgTitle).addExtras(parm).build())
                                .addPlatformNotification(
                                        IosNotification.newBuilder().setAlert(
                                                msgTitle).addExtras(parm)
                                                .build()).build()).setOptions(
                        Options.newBuilder().setApnsProduction(true).build())
                .setMessage(
                        Message.newBuilder().setMsgContent(contnet).addExtras(
                                parm).build())// 自定义信息

                .build();

        try {
            PushResult pu = jpushClient.sendPush(payload);

        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {// "d999570b9e6aabf0ba17078316f0af0c","99E9F10BD44D8B23E755918ACC6CC46E"
        String[] tagsList = { "99E9F10BD44D8B23E755918ACC6CC46E" };
        String tile = "直播8888888";
        String contnet = "您订阅的17:14分四川卫视[苍狼11]节目马上就要开始了,快去收视吧!";
        for (int i = 0; i < tagsList.length; i++) {
            Map<String, String> parm = new HashMap<String, String>();
            parm.put("activityId", "021");
            parm.put("activityType", "5");
            parm.put("tile", tile);
            parm.put("msg", contnet);

            System.out.println(tagsList[i]);
            JPushUtil.jpush(tagsList[i], tile, contnet, parm);
            //JPushUtil.jpushAll(parm);
        }
    }

}

发送完毕后报错如下,请各位大神指教下

```
log4j:WARN No appenders could be found for logger (cn.jiguang.common.connection.NativeHttpClient).
log4j:WARN Please initialize the log4j system properly.
{}
at cn.jiguang.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:235)
at cn.jiguang.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:99)
at cn.jiguang.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:86)
at cn.jpush.api.push.PushClient.sendPush(PushClient.java:160)
at cn.jpush.api.JPushClient.sendPush(JPushClient.java:194)
at com.gsww.jup.util.JPushUtil.jpush(JPushUtil.java:155)
at com.gsww.jup.util.JPushUtil.main(JPushUtil.java:177)

1个回答

热门排序