Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我尝试在JavaWebSocket的消息函数中使用amazon凭据时,出现了一个未定义类的found错误_Java_Amazon Web Services_Websocket - Fatal编程技术网

当我尝试在JavaWebSocket的消息函数中使用amazon凭据时,出现了一个未定义类的found错误

当我尝试在JavaWebSocket的消息函数中使用amazon凭据时,出现了一个未定义类的found错误,java,amazon-web-services,websocket,Java,Amazon Web Services,Websocket,我在eclipse控制台中的错误如下 @ServerEndpoint("/echo") public class EchoServer { /** * @OnOpen allows us to intercept the creation of a new session. * The session class allows us to send data to the user. * In the method onOpen, we'll let the user know th

我在eclipse控制台中的错误如下

@ServerEndpoint("/echo") 
public class EchoServer {


/**
 * @OnOpen allows us to intercept the creation of a new session.
 * The session class allows us to send data to the user.
 * In the method onOpen, we'll let the user know that the handshake was 
 * successful.
 */
@OnOpen
public void onOpen(Session session){
    System.out.println(session.getId() + " has opened a connection"); 

    try {
        session.getBasicRemote().sendText("Connection Established");

    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

/**
 * When a user sends a message to the server, this method will intercept the message
 * and allow us to react to it. For now the message is read as a String.
 */
@OnMessage
public void onMessage(String message, final Session session){
    System.out.println("Message from " + session.getId() + ": " + message);
    AWSCredentials credentials = new ProfileCredentialsProvider("default").getCredentials();

    //create a new SNS client and set endpoint
    AmazonSNSClient snsClient = new AmazonSNSClient(credentials);   
    Region usWest2 = Region.getRegion(Regions.US_WEST_2);
    snsClient.setRegion(usWest2);

    StatusListener listener = new StatusListener(){
        public void onStatus(Status status) {
            if( status.getGeoLocation() != null){
                double lat=status.getGeoLocation().getLatitude(),lon=status.getGeoLocation().getLongitude();

                //publish


                 String str = lat+":"+lon;
                 if (session.isOpen()) {
                     try {
                         AlchemyAPI alchemyObj = AlchemyAPI.GetInstanceFromFile("D:\\NYU Poly\\Fall 15\\Cloud Computing\\alchemyapi_java\\testdir\\api_key.txt");
                         Document doc = alchemyObj.TextGetTextSentiment(status.getText());
                                System.out.println(getStringFromDocument(doc));

                              //publish to an SNS topic
                                String msg = getStringFromDocument(doc);
                                //String topicArn = "arn:aws:sns:us-west-2:834106634132:Twitter";
                                //PublishRequest publishRequest = new PublishRequest(topicArn, msg);

                                //PublishResult publishResult = snsClient.publish(publishRequest);
                                //print MessageId of message published to SNS topic
                                //System.out.println("MessageId - " + publishResult.getMessageId());

                        session.getBasicRemote().sendText(str);
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                 }

            }

        }

        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {}
        public void onTrackLimitationNotice(int numberOfLimitedStatuses) {}
        public void onException(Exception ex) {
            ex.printStackTrace();
        }


        @Override
        public void onScrubGeo(long arg0, long arg1) {
            // TODO Auto-generated method stub

        }
        @Override
        public void onStallWarning(StallWarning arg0) {
            // TODO Auto-generated method stub

        }
    };
    //////////////////////////////////////////////////////////
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
     .setOAuthConsumerKey("gjYHUww0ciM67sRD7CEuanLF7")
     .setOAuthConsumerSecret("dflwPXdHNX2g6DSI3xSE2Imskws445LTNSjS06Y1n8cgLpDsDD")
      .setOAuthAccessToken("47097798-m5IOQF1CFojXsapxK4VmakFECLVOPknWfkRB3pGG7")
      .setOAuthAccessTokenSecret("8wNFLHFix9LDgYM7ddffN410bTsGTSvXRPwnOSUbHFX0u");
    //.setOAuthConsumerKey("WHr6IPKnShflqkiADUmR0EJWD")
     // .setOAuthConsumerSecret("NagLvgroGTVJBwHAJrZrPdOXUhETWUjBM7Y0qoEHewvO5Oh38Y")
     // .setOAuthAccessToken("262545045-Jfnnh8N6wO5WHc43SWUgIgRbZ8QpuNhVtI3WNfiW")
     // .setOAuthAccessTokenSecret("KGfORKRc3h9Lxko0GHIZY71MS7uLWv0Ht4T6EPetkVX1Z");
    TwitterStreamFactory tf = new TwitterStreamFactory(cb.build());
    TwitterStream twitterStream = tf.getInstance();
    twitterStream.addListener(listener);
    // sample() method internally creates a thread which manipulates TwitterStream and calls these adequate listener methods continuously.
    FilterQuery fq = new FilterQuery();
 //   String[] track = {"cricket","india","chelsea","#BlackOutDay","#PakVsSA","liverpool",};
 //  String[] track = {"cricket"};
    if(message.equals("")){
    double[][] locations = {{-180.0d,-90.0d},{180.0d,90.0d}};
    fq.locations(locations);
    }
    else
    {
        String[] track = {message};
        fq.track(track);
    }
 //   fq.track(track);
    twitterStream.filter(fq);
}

/**
 * The user closes the connection.
 * 
 * Note: you can't send messages to the client from this method
 */
@OnClose
public void onClose(Session session){
    System.out.println("Session " +session.getId()+" has ended");
}

// utility method
private static String getStringFromDocument(Document doc) {
    try {
        DOMSource domSource = new DOMSource(doc);
        StringWriter writer = new StringWriter();
        StreamResult result = new StreamResult(writer);

        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer = tf.newTransformer();
        transformer.transform(domSource, result);

        return writer.toString();
    } catch (TransformerException ex) {
        ex.printStackTrace();
        return null;
    }
}
}
发生了以下错误

SEVERE: No error handling configured for [EchoServer]

类路径上可能没有正确的aws库,或者只是其中的一部分。您是如何将aws java sdk的哪些部分添加到您的应用程序中的?如果这些oauth令牌中的任何一个是真实的,您可能现在就想更改它们
java.lang.RuntimeException:   com/amazonaws/auth/profile/ProfileCredentialsProvider
    at org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase.handlePojoMethodException(PojoMessageHandlerBase.java:119)
    at org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBase.onMessage(PojoMessageHandlerWholeBase.java:82)
    at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:393)
    at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:494)
    at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:289)
    at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130)
    at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:60)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:183)
    at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:198)
    at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:96)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:669)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/amazonaws/auth/profile/ProfileCredentialsProvider
    at EchoServer.onMessage(EchoServer.java:81)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBase.onMessage(PojoMessageHandlerWholeBase.java:80)
    ... 15 more
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.profile.ProfileCredentialsProvider
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
    ... 21 more

Session 0 has ended