Java maven依赖的问题?
尝试执行api失败,如下所示:Java maven依赖的问题?,java,maven,twilio,Java,Maven,Twilio,尝试执行api失败,如下所示: 18:17:35.270 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selected: best-match 18:17:35.296 [main] DEBUG o.a.h.c.protocol.RequestAuthCache - Auth cache not set in the context 18:17:35.297 [main] DEBUG o.a.h.impl.client
18:17:35.270 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selected: best-match
18:17:35.296 [main] DEBUG o.a.h.c.protocol.RequestAuthCache - Auth cache not set in the context
18:17:35.297 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Reopening the direct connection.
18:17:35.297 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Attempt 1 to execute request
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)
at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)
at ws.SmsSender.main(SmsSender.java:34)
Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:37)
... 16 more
18:17:35.334 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Closing the connection.
<dependency>
<groupId>fi.foyt</groupId>
<artifactId>foursquare-api</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
</exclusion>
</exclusions>
</dependency>
我认为这与Maven中的依赖性问题有关。以下是我的pom.xml:
<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.wat</groupId>
<artifactId>ws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ws</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>foursquareapijava</id>
<name>Foursquare V2 API for Java Repository</name>
<url>http://foursquare-api-java.googlecode.com/svn/repository</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.yammer.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>0.6.2</version>
</dependency>
<dependency>
<groupId>com.yammer.dropwizard</groupId>
<artifactId>dropwizard-auth</artifactId>
<version>0.6.2</version>
</dependency>
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>libphonenumber</artifactId>
<version>6.1</version>
</dependency>
<dependency>
<groupId>net.vz.mongodb.jackson</groupId>
<artifactId>mongo-jackson-mapper</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>com.twilio.sdk</groupId>
<artifactId>twilio-java-sdk</artifactId>
<version>3.4.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.0-rc2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>fi.foyt</groupId>
<artifactId>foursquare-api</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.scribe</groupId>
<artifactId>scribe</artifactId>
<version>1.1.0</version>
</dependency>
<!-- <dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-core</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-integration</artifactId>
<version>0.9</version>
</dependency> -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<configuration>
<createDependencyReducedPom>true</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>ws.WSService</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
以及正在执行的代码:
package ws;
import com.twilio.sdk.TwilioRestClient;
import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.TwilioRestResponse;
import com.twilio.sdk.resource.factory.CallFactory;
import com.twilio.sdk.resource.factory.MessageFactory;
import com.twilio.sdk.resource.instance.*;
import com.twilio.sdk.resource.list.AccountList;
import com.twilio.sdk.resource.list.AvailablePhoneNumberList;
import com.twilio.sdk.resource.list.ParticipantList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.util.*;
public class SmsSender {
// Find your Account Sid and Token at twilio.com/user/account
public static final String ACCOUNT_SID = "<HIDDEN>";
public static final String AUTH_TOKEN = "<HIDDEN>";
public static void main(String[] args) throws TwilioRestException {
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
Account mainAccount = client.getAccount();
// Send an sms (using the new messages endpoint)
MessageFactory messageFactory = mainAccount.getMessageFactory();
List<NameValuePair> messageParams = new ArrayList<NameValuePair>();
messageParams.add(new BasicNameValuePair("To", "+HIDDEN")); // Replace with a valid phone number
messageParams.add(new BasicNameValuePair("From", "+HIDDEN")); // Replace with a valid phone
// number in your account
messageParams.add(new BasicNameValuePair("Body", "This is a test message!"));
messageFactory.create(messageParams);
}
}
包ws;
导入com.twilio.sdk.TwilioRestClient;
导入com.twilio.sdk.TwilioRestException;
导入com.twillio.sdk.twillioresponse;
导入com.twilio.sdk.resource.factory.CallFactory;
导入com.twilio.sdk.resource.factory.MessageFactory;
导入com.twilio.sdk.resource.instance.*;
导入com.twilio.sdk.resource.list.AccountList;
导入com.twilio.sdk.resource.list.AvailablePhoneNumber列表;
导入com.twilio.sdk.resource.list.ParticipantList;
导入org.apache.http.NameValuePair;
导入org.apache.http.message.BasicNameValuePair;
导入java.util.*;
公共级SmsSender{
//在twilio.com/user/Account上查找您的帐户Sid和令牌
公共静态最终字符串帐户_SID=“”;
公共静态最终字符串AUTH_TOKEN=“”;
公共静态void main(字符串[]args)引发TwilioRestException{
TwilioRestClient=新的TwilioRestClient(帐户SID,身份验证令牌);
Account maincount=client.getAccount();
//发送sms(使用新消息端点)
MessageFactory MessageFactory=maincount.getMessageFactory();
List messageParams=new ArrayList();
messageParams.add(新的BasicNameValuePair(“To”,“隐藏”);//替换为有效的电话号码
messageParams.add(新的BasicNameValuePair(“From”,“+HIDDEN”);//替换为有效的电话
//您帐户中的号码
添加(新的BasicNameValuePair(“Body”,“这是一条测试消息!”);
messageFactory.create(messageParams);
}
}
有什么想法吗?来自twilio:
嗨,马修
谢谢你和我们联系
看起来“foursquare api”带来了
“appengine-api-1.0-sdk”依赖项
[INFO] +- fi.foyt:foursquare-api:jar:1.0.2:compile
[INFO] | +- org.json:json:jar:20090211:compile
[INFO] | \- com.google.appengine:appengine-api-1.0-sdk:jar:1.6.5:compile
您可以尝试排除此依赖项,但我希望它会
可能会破坏“foursquare api”库
为此,“TwilioJava”对应用程序引擎没有硬依赖性
原因
如果您还有其他问题,请告诉我们
Alex Chan Twilio客户支持www.Twilio.com
更新了pom.xml,如下所示:
18:17:35.270 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selected: best-match
18:17:35.296 [main] DEBUG o.a.h.c.protocol.RequestAuthCache - Auth cache not set in the context
18:17:35.297 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Reopening the direct connection.
18:17:35.297 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Attempt 1 to execute request
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)
at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)
at ws.SmsSender.main(SmsSender.java:34)
Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:37)
... 16 more
18:17:35.334 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Closing the connection.
<dependency>
<groupId>fi.foyt</groupId>
<artifactId>foursquare-api</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
</exclusion>
</exclusions>
</dependency>
菲福伊特
foursquare api
1.0.2
com.google.appengine
appengine-api-1.0-sdk