我在从Android平台上的InputStream读取时遇到了一个奇怪的问题.我不确定这是Android特定的问题,还是我一般都做错了.
唯一特定于Android的是此调用:
InputStream is = getResources().openRawResource(R.raw.myfile);
Run Code Online (Sandbox Code Playgroud)
这将从Android资产返回文件的InputStream.无论如何,这是我遇到问题的地方:
bytes[] buffer = new bytes[2];
is.read(buffer);
Run Code Online (Sandbox Code Playgroud)
当read()执行时抛出IOException.奇怪的是,如果我执行两个连续的单字节读取(或任意数量的单字节读取),则没有例外.例如,这有效:
byte buffer;
buffer = (byte)buffer.read();
buffer = (byte)buffer.read();
Run Code Online (Sandbox Code Playgroud)
任何想法为什么两个连续的单字节读取工作,但一次调用同时读取两个引发异常?该InputStream中似乎罚款... is.available()回报超过一百万个字节(因为它应该).
堆栈跟踪显示在以下行之前的这些行InputStream.read():
java.io.IOException
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$800(AssetManager.java:36)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542)
Run Code Online (Sandbox Code Playgroud)
将缓冲区大小更改为单个字节仍会引发错误.看起来只有在读入字节数组时才会引发异常.
如果我将文件截断为100,000字节(文件最初为:1,917,408字节),它可以正常工作.超过一定大小的文件有问题吗?
任何帮助表示赞赏!
谢谢!
我试图使用PHPUnit测试Web服务接口类.基本上,这个类调用SoapClient对象.我试图使用getMockFromWsdl此处描述的方法在PHPUnit中测试此类:
但是,由于我想从同一个类中测试多个方法,所以每次设置对象时,我都必须设置模拟WSDL SoapClient对象.这会导致抛出致命错误:
Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
Run Code Online (Sandbox Code Playgroud)
如何在多个测试中使用相同的模拟对象,而不必每次都从WSDL重新生成它?这似乎是个问题.
-
有人要求发布一些代码来查看,这里是TestCase中的setup方法:
protected function setUp() {
parent::setUp();
$this->client = new Client();
$this->SoapClient = $this->getMockFromWsdl(
'service.wsdl'
);
$this->client->setClient($this->SoapClient);
}
Run Code Online (Sandbox Code Playgroud) 大家好我怎样才能创建使用eclipse在android中创建的项目的jar文件.我已经用这种方式完成了项目 - >右键单击 - >导出 - >选择构建器 - > antbuilder - >确定然后在此过程之后将创建build.xml.在bulid.xml上,我将创建新的构建器.
我已经按照上面的过程但在bin文件夹中找不到我的jar.我可以看到我的build.xml已创建,所有进程都顺利但仍未创建jar.谁能告诉我怎么能这样做?
我的build.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
Any modifications will be overwritten.
To include a user specific buildfile here, simply create one in the same
directory with the processing instruction <?eclipse.ant.import?>
as the first entry and export the buildfile again. -->
<project basedir="." default="build" name="testtttttttttt">
<property environment="env"/>
<property name="debuglevel" value="source,lines,vars"/>
<property …Run Code Online (Sandbox Code Playgroud) 在Jenkins上运行sonarqube独立分析时出现以下错误.sonarqube扫描仪能够识别要分析的文件,并能够很好地分析它们,但问题是它何时尝试将项目发布到仪表板.
当我在浏览器中打开URL http:// vv123456:9000/api/ce/submit?projectKey = pkey&projectName = pname时,它会显示"{"errors":[{"msg":"需要HTTP方法POST}}] }",这意味着sonarqube webservice很好.
Jenkins构建错误:
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
at org.sonar.runner.api.Runner.execute(Runner.java:100)
at org.sonar.runner.Main.executeTask(Main.java:70)
at org.sonar.runner.Main.execute(Main.java:59)
at org.sonar.runner.Main.main(Main.java:53)
Caused by: org.sonarqube.ws.client.HttpException: Error 500 on [http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname][1]
at org.sonarqube.ws.client.BaseResponse.failIfNotSuccessful(BaseResponse.java:34)
at org.sonar.batch.bootstrap.BatchWsClient.failIfUnauthorized(BatchWsClient.java:99)
at org.sonar.batch.bootstrap.BatchWsClient.call(BatchWsClient.java:69)
at org.sonar.batch.report.ReportPublisher.upload(ReportPublisher.java:172)
at org.sonar.batch.report.ReportPublisher.execute(ReportPublisher.java:127)
at org.sonar.batch.phases.PublishPhaseExecutor.publishReportJob(PublishPhaseExecutor.java:64)
at org.sonar.batch.phases.PublishPhaseExecutor.executeOnRoot(PublishPhaseExecutor.java:51)
at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:86)
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Activity在方法中创建一个带有IntentFilter的BroadcastReceiver: onCreate(...)
IntentFilter iFilter = new IntentFilter("action");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
registerReceiver(receiver, iFilter);
Run Code Online (Sandbox Code Playgroud)
另一方面是IntentService,它将发送一些数据:
Intent intent = new Intent(getApplicationContext(), receiver.class);
intent.setAction("action");
[...]
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用.没有收到广播.
我的服务类是在一个android lib中,也许这会给你带来麻烦.
感谢您的任何建议.
我正在寻找SonarQube与FindBugs,PMD和Checkstyle插件的最佳实践.
我正在运行以下jenkinsci/jenkins:2.0-rc-1docker 镜像来试用jenkins 2.0和"管道"视图.
我似乎无法安装节点.这是我的管道脚本:
node {
//tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'])
sh 'echo $(whoami)'
sh 'node -v'
}
Run Code Online (Sandbox Code Playgroud)
运行时的响应是:
[ci] Running shell script
+ whoami
+ echo jenkins
jenkins
[Pipeline] sh
[ci] Running shell script
+ node -v
/../durable-3b0b1b07/script.sh: 2: /../durable-3b0b1b07/script.sh: node: not found
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
jenkins NodeJS工具(与自由式作业一起使用时可正常工作)
登录到docker容器并手动安装节点,对于同一个用户:
更新:
基于Jesse Glick的回答,我将结果添加到我的脚本中PATH:
node {
def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
env.PATH = "${nodeHome}/bin:${env.PATH}"
sh 'npm install'
}
Run Code Online (Sandbox Code Playgroud) 我在看http://symfony.com/doc/2.0/cookbook/service_container/parentservices.html
newsletter_manager:
class: %newsletter_manager.class%
parent: mail_manager
calls:
- [ setFilter, [ @another_filter ] ]
Run Code Online (Sandbox Code Playgroud)
我应该能够将服务注入函数调用(如果我不理解错误).但是当我尝试自己的项目时,
myapp.userBridge:
class: ...\NotesBundle\Bridge\UserBridge
arguments:
- '@doctrine.orm.entity_manager'
myapp.user:
class: ...\UserBundle\Entity\User
calls:
- [ initUserNotesBundle, [ @myapp.userBridge ] ]
- [ cleanupUserNotesBundle, [ @myapp.userBridge ] ]
Run Code Online (Sandbox Code Playgroud)
但是当调用该函数时(Doctrine 2生命周期回调:PrePersist)
public function initUserNotesBundle(UserBridge $userBridge) {
$userBridge->prePersistUser($this);
}
Run Code Online (Sandbox Code Playgroud)
它给
Catchable Fatal Error: Argument 1 passed to ...\UserBundle\Entity\User::initUserNotesBundle()
must be an instance of ...\NotesBundle\Bridge\UserBridge, none given,
called in ...\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line 1540
and defined in ...\UserBundle\Entity\User.php line 319
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种简单的方法来为每个表单添加一组字段.
我找到了一种扩展AbstractType的buildForm方法,并使用该方法添加更多字段.
在创建表单时,我给出了我的新类型的名称(如何创建自定义表单字段类型).
在我看来,这是一种简单的方法,但每种形式仅限于一种类型.
是否有更好的方法来实现这样的目标?
我已经阅读了symfony的食谱,但我只找到了如何扩展现有表单而不是如何使用我的字段创建自己的表单"模板".
我有一个gitlab服务器版本"Gitlab 6.0.2 10b0b8f".我想连接"Jenkins CI"用于构建目的.为此,我关注 - http://doc.gitlab.com/ee/integration/jenkins.html.但在项目服务中,我无法看到"Jenkins CI".只有我能看到"Gitlab CI".你能帮我么.任何例子都会受到批评.
android ×3
java ×2
sonarqube ×2
symfony ×2
doctrine-orm ×1
eclipse ×1
gitlab ×1
gitlab-ci ×1
groovy ×1
inputstream ×1
intentfilter ×1
ioexception ×1
jar ×1
jenkins ×1
jenkins-2 ×1
jenkins-cli ×1
node.js ×1
php ×1
phpunit ×1
silex ×1
soap ×1
symfony-2.4 ×1
web-services ×1