无法扩展由以前版本的Scala编译的宏(scala 2.11.4,sbt 0.13.7,JDK 8)

我正在将项目转换为Scala 2.11.4和sbt 0.13.7。 我遇到了很多错误,其中一些是: can’t expand macros compiled by previous versions of Scala [error] preloadDevice <<= preloadDeviceTask 对于此代码: lazy val settings: Seq[Setting[_]] = inConfig(Android) (Seq( // Preload Scala on the device/emulator preloadDevice <<= preloadDeviceTask, preloadEmulator <<= InputTask( (sdkPath)(AndroidProject.installedAvds(_)))(preloadEmulatorTask), // Uninstall previously preloaded Scala unloadDevice <<= unloadDeviceTask, unloadEmulator <<= InputTask( (sdkPath)(AndroidProject.installedAvds(_)))(unloadEmulatorTask) )) 我如何解决它? 更新: JDK 8

javafx.scene.layout.Pane无法强制转换为javafx.fxml.FXMLLoader

我在尝试从场景切换到另一个场景时遇到了麻烦。 场景是这样的: 当前视图和控制器 : login.fxml和LoginController 下一步查看和控制器 : loggedWindow.fxml和UserPanelController 。 现在,我在LoginController并尝试将场景切换到loggedWindow.fxml发送给UserPanelController一个参数,但是当我使用我的代码时,我得到: javafx.scene.layout.Pane cannot be cast to javafx.fxml.FXMLLoader 的LoginController: FXMLLoader loggedWindow = null; loggedWindow = FXMLLoader.load(getClass().getResource(“loggedWindow.fxml”)); // here crashes! Pane root = loggedWindow.load(); UserPanelController controller = loggedWindow.getController(); controller.initData(customer); Stage switchScene = (Stage)((Node)event.getSource()).getScene().getWindow(); switchScene.setResizable(false); switchScene.setTitle(“Welcome ” + customer.FirstName + ” ” + customer.LastName); switchScene.setScene(new Scene(root, 800, 500)); switchScene.show(); […]

在Java Mail API中将“消息成功传递”到错误的邮件地址

我已经开始使用JAVA邮件API实现邮件模块。 我使用SMTPMessage,以便我可以获得邮件的传递状态。 问题是我收到wrong mail addresses成功递送报告 这就是我发送消息所做的工作 SMTPMessage smtpMsg=new SMTPMessage(message); smtpMsg.setReturnOption(SMTPMessage.RETURN_HDRS); smtpMsg.setNotifyOptions(SMTPMessage.NOTIFY_SUCCESS |SMTPMessage.NOTIFY_FAILURE); Transport transport = session.getTransport(“smtp”); //attach the listeners for the connection and transmission transport.addConnectionListener(this); transport.addTransportListener(this); transport.connect(); //connect to the server and send the message transport.sendMessage(smtpMsg, smtpMsg.getAllRecipients()); 由于我的类实现了TransportListener,ConnectionListener ,我已经将侦听器附加为 public void opened(ConnectionEvent e) { System.out.println(“Connection opened”); } public void disconnected(ConnectionEvent e) { System.out.println(“Connection disconnected”); } […]

在Java 8中分组在具有聚合的多个字段上

我有一个与Web访问记录相关的域对象列表。 这些域对象可以扩展到数千个。 我没有资源或要求以原始格式将它们存储在数据库中,因此我希望预先计算聚合并将聚合数据放入数据库中。 我需要聚合在5分钟窗口中传输的总字节数, 如下面的SQL查询 select round(request_timestamp, ‘5’) as window, –round timestamp to the nearest 5 minute cdn, isp, http_result_code, transaction_time, sum(bytes_transferred) from web_records group by round(request_timestamp, ‘5’), cdn, isp, http_result_code, transaction_time 在Java 8中我的第一个当前stab看起来像这样, 我知道这个解决方案类似于这个响应在Group 8中由多个字段名称在java 8中 Map<Date, Map<String, Map<String, Map<String, Map>>>>>> aggregatedData = webRecords .stream() .collect(Collectors.groupingBy(WebRecord::getFiveMinuteWindow, Collectors.groupingBy(WebRecord::getCdn, Collectors.groupingBy(WebRecord::getIsp, Collectors.groupingBy(WebRecord::getResultCode, Collectors.groupingBy(WebRecord::getTxnTime, Collectors.reducing(0, WebRecord::getReqBytes(), Integer::sum))))))); 这很有效,但它很难看,所有嵌套的地图都是噩梦! […]

Bittorrent扩展协议

我想在java中编写自己的bittorrent客户端,这是一个make work项目来刷新我的java技能。 我一直处于开发的某个阶段,尽管有一些论坛用于bittorrent开发,但它们看起来并不活跃。 到目前为止,我可以做到以下几点: 从Tracker站点获取同行列表 连接到同行 发送’Handshake’消息 收到’Handshake’消息 发送“感兴趣”消息。 收到“Unchoke”消息。 我遇到的问题是,如果我在发送“感兴趣”消息之前尝试向对等方发送扩展数据( http://www.bittorrent.org/beps/bep_0010.html )。 协议规定您必须在收到握手后立即发送扩展数据。 如果我将扩展数据发送到对等体,则对等体立即关闭连接,即在Wireshark中我看到FIN,ACK。 我使用Wireshark和uTorrent来查看正在发送的扩展数据,我试图复制这些数据,但无济于事。 我已经尝试了扩展数据参数的所有不同组合,但无论我做什么,我都无法超越这一点。 以下是从Wireshark复制的扩展数据消息的示例。 d1:ei0e4:ipv44:czH12:complete_agoi-1e1:md11:upload_onlyi3e11:lt_donthavei7e12:ut_holepunchi4e11:ut_metadatai2e6:ut_pexi1e10:ut_commenti6ee1:pi43276e4:reqqi255e1:v13:Torrent 3.52:ypi48680e6:yourip4:jFe 这是来自我的客户端的扩展数据不起作用。 顺便说一下,我已经检查过以确保ip变量是正确的(它们以4个字节的forms发送)。 d1:ei0e4:ipv44:czH12:complete_agoi-1e1:md11:upload_onlyi3e11:lt_donthavei7e12:ut_holepunchi4e11:ut_metadatai2e6:ut_pexi1e10:ut_commenti6ee1:pi51361e4:reqqi255e1:v15:MyTorrent v0.152:ypi40898e6:yourip4:RO e 此外,一旦我收到“Unchoke”消息,我就能成功检索到碎片。 任何信息,将不胜感激。

Struts 2当用户插入不存在的动作时该怎么做

在Struts 2应用程序中,当用户插入与您的任何操作无关的URL时,会出现java.lang.NullPointerException 在这些情况下,我想显示一个漂亮的屏幕,所以我已经添加到我的struts.xml /WEB-INF/jsp/exception.jsp 但它不起作用。 我也尝试过没有成功 /WEB-INF/jsp/exception.jsp 所以,我开始认为所有的URL都必须与一个动作对应,否则当用户插入与任何动作不对应的URL时,没有机制来处理这些情况(所以这个机制是处理由NullpointerException引起的您现有的一个动作,而不是一个不存在的动作。

DateTimeFormatter无法解析德语中没有前导零的日期

我们的客户今天发现了一个有趣的错 考虑以下方法: final DateTimeFormatter englishFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locale.ENGLISH); System.out.println(LocalDate.parse(“04/01/17”, englishFormatter)); System.out.println(LocalDate.parse(“4/1/17”, englishFormatter)); final DateTimeFormatter germanFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locale.GERMAN); System.out.println(LocalDate.parse(“01.04.17”, germanFormatter)); System.out.println(LocalDate.parse(“1.4.17”, germanFormatter)); (如果您不知道,这些确实是英语和德语的正确日期。我甚至会说它们是相同的日期[2017年4月1日]。请花点时间考虑一下您认为该应用程序应该返回的内容。 ) 它返回的是以下内容: Exception in thread “main” java.time.format.DateTimeParseException: Text ‘1.4.17’ could not be parsed at index 0 at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) at java.time.LocalDate.parse(LocalDate.java:400) at Main.main(Main.java:20) 英语日期格式使用和不使用前导零。 德语格式仅适用于前导零。 我似乎无法找到一个属性来更改此行为以正常工作。 如何让DateTimeFormatter没有前导零的情况下理解德语日期? 注意:我们的应用程序支持多种语言环境,因此使用特定的DateTimeFormatter (如DateTimeFormatter.ofPattern(“dMyy”) )是完全DateTimeFormatter.ofPattern(“dMyy”)的,特别是因为我们要解析默认的日期格式。

请讨论使用portlet的原因和原因

为什么我要在tomcat和gwt上面使用java portlet? portlet是否会减少或不需要使用jsp和jsf? Jboss是portlet进化文化的一部分吗? Jboss是否满足portlet jsrs? 什么portlet实现/品牌将在gae java和gae python上运行? 由于来自php cms文化的同伴压力,portlet规格是否? .net中portlet和portlet jsr的等价物是什么?

在Android fetch中集成googleplus(性别和生日)

我试图从Android中的googleplus集成获取性别和生日…但是性别为“0”请帮我这个..附加我的代码..请找下面的代码..生日显示为空… public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSignInButton = (SignInButton) findViewById(R.id.sign_in_button); mSignInButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mGoogleApiClient.connect(); } }); mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this).addApi(Plus.API) .addScope(Plus.SCOPE_PLUS_PROFILE) .addScope(Plus.SCOPE_PLUS_LOGIN).build(); } protected void onStart() { super.onStart(); // mGoogleApiClient.connect(); } protected void onStop() { super.onStop(); if (mGoogleApiClient.isConnected()) { mGoogleApiClient.disconnect(); […]

Java NIO – 使用选择器

有一些关于使用非阻塞选择器的快速问题 – 回答下面的任何一个将不胜感激: 我刚刚学习了选择器(java NIO模型),并希望澄清一些事实。 从教程和SO问题中挑选了大部分关键点: Java NIO:选择器 所以: 从上面链接的问题中,注册服务器套接字通道以监听接受,当接受通道注册读取时,一旦读取它就注册为写入。 然后如何重新听取接受? 我的意思是似乎没有重复调用寄存器接受监听器。 只是一旦注册了ServerSocketChannel,选择器将始终监听接受吗? 如果是这样,这是否意味着选择器将始终监听通道上的读/写? 你如何阻止它 – 它是否像关闭频道一样简单? 如果频道注册两次会怎样? 我的意思是 – 在上面的例子中,每次读取一条消息后都会注册一个套接字 – 基本上看起来像一个echo服务器。 我想这个例子假设在写完后连接将被关闭。 如果你想保持一个开放的连接并以不同的间隔写入套接字会发生什么 – 你必须每次都注册一个interestOp吗? 两次注册同一频道是否有害? multithreading:现在编写multithreading服务器的最佳设计是什么 – 因为上面的非阻塞方法假定一个线程可以处理写入和读取。 如果预期读/写操作需要一段时间,您是否应该创建新线程? 还有其他要考虑的问题吗? 了解multithreading是用于阻止IO但是已经看到一些使用线程池和非阻塞模型的框架,并且想知道为什么。