mvn install:install-file -Dfile=jsmpp-2.1.0.jar -DgroupId=org.jsmpp -DartifactId=smpp -Dversion=2.1.0 -Dpackaging=jar
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.acme.ae.tests.smpp</groupId> <artifactId>SMPPTest</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>smppTest-${project.version}</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <resource_dir>${project.basedir}/src/main/resources</resource_dir> </properties> <build> <finalName>${project.name}-${project.version}</finalName> <resources> <resource> <directory>${resource_dir}</directory> </resource> </resources> </build> <dependencies> <dependency> <groupId>org.jsmpp</groupId> <artifactId>smpp</artifactId> <version>2.1.0</version> </dependency> </dependencies> </project>
package com.acme.ae.tests.smpp; public class Test { private void start() throws IOException { } private void stop() throws IOException { } private void test() { } public static void main(String[] args) { Test t = new Test(); try { try { t.start(); t.test(); } finally { t.stop(); } } catch (Exception e) { System.out.println(e.toString()); } } }
... private SMPPSession session = null; private void start() throws IOException { session = new SMPPSession(); session.connectAndBind(SMPP_IP, SMPP_PORT, new BindParameter( BindType.BIND_TX, SMPP_LOGIN, SMPP_PASS, "cp", TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, null)); } private void stop() throws IOException { if (session != null) { session.unbindAndClose(); } } ...
... new GeneralDataCoding(Alphabet.ALPHA_DEFAULT, MessageClass.CLASS1, false) ...
- public GeneralDataCoding(boolean compressed, boolean containMessageClass, - MessageClass messageClass, Alphabet alphabet) { + public GeneralDataCoding(Alphabet alphabet, MessageClass messageClass, + boolean compressed) throws IllegalArgumentException { ... }
... private static TimeFormatter timeFormatter = new AbsoluteTimeFormatter(); private void test() throws PDUException, ResponseTimeoutException, InvalidResponseException, NegativeResponseException, IOException { String messageId = session.submitShortMessage( "CMT", TypeOfNumber.ALPHANUMERIC, NumberingPlanIndicator.UNKNOWN, "ACME", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.ISDN, "7XXXXXXXXXX", new ESMClass(), (byte)0, (byte)1, timeFormatter.format(new Date()), null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte)0, new GeneralDataCoding( false, false, MessageClass.CLASS1, Alphabet.ALPHA_DEFAULT), (byte)0, "jSMPP simplify SMPP on Java platform".getBytes()); System.out.println("Message submitted, message_id is " + messageId); } ...
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at org.jsmpp.session.AbstractSession.<clinit>(AbstractSession.java:51) at com.amfitel.m2000.ae.tests.smpp.Test.start(Test.java:56) at com.amfitel.m2000.ae.tests.smpp.Test.main(Test.java:179) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 3 more
... <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> ...
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
... <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> ...
... new GeneralDataCoding( false, false, - MessageClass.CLASS1, + MessageClass.CLASS0, Alphabet.ALPHA_DEFAULT) ...
GeneralDataCoding coding = new GeneralDataCoding( false, false, MessageClass.CLASS0, Alphabet.ALPHA_UCS2); final int totalSegments = 3; Random random = new Random(); OptionalParameter sarMsgRefNum = OptionalParameters.newSarMsgRefNum((short)random.nextInt()); OptionalParameter sarTotalSegments = OptionalParameters.newSarTotalSegments(totalSegments); for (int i = 0; i < totalSegments; i++) { final int seqNum = i + 1; String message = " " + seqNum + " of " + totalSegments + " "; OptionalParameter sarSegmentSeqnum = OptionalParameters.newSarSegmentSeqnum(seqNum); String messageId = session.submitShortMessage( "CMT", TypeOfNumber.ALPHANUMERIC, NumberingPlanIndicator.UNKNOWN, "ACME", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.ISDN, "7XXXXXXXXXX", new ESMClass(), SMPP_PROTOCOL_ID, // (byte)0 SMPP_PRIORITY_FLAG, // (byte)1 null, null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), SMPP_REP_IF_P_FLAG, // (byte)0 coding, (byte)0, message.getBytes(Charset.forName("UTF-16")), sarMsgRefNum, sarSegmentSeqnum, sarTotalSegments); System.out.println("Message submitted, message_id is " + messageId); }
Source: https://habr.com/ru/post/202142/