HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
開源中國手機客戶端無法使用碼云賬號登錄,如果我重新注冊一個開源中國賬號,是否登錄后是2個完全獨立的賬號了呢
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
The import android.webkit.CacheManager cannot be resolved
這個是什么原因呢,用的Android 4.4.2
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
OSCHINA 手機端實現(xiàn)了二維碼簽到的功能,這個實現(xiàn)模型是怎樣的?有誰能講解一下?
掃別的內(nèi)容出現(xiàn)提示:非oschina提供活動簽到的二維碼內(nèi)容:xxxxx.
沒參加過oschina的活動,提供的二維碼內(nèi)容是啥?一個網(wǎng)址?提交用戶名到一個網(wǎng)址去就完成了簽到?
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
@巴拉迪維 你好,想跟你請教個問題:
我的手機是三星s4的標題欄文字的顏色是白色的
標題欄上面一片空白 真別扭
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
android不是自己有一個任務棧的概念嗎,他自己可以管理activity啊。為什么要設計一個AppManager,是為了代替任務棧?
每創(chuàng)建一個activity,就把他放到AppManager的棧中,最后推出時,統(tǒng)一清空。請問這么做是為什么
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> Information:Gradle tasks [:app:assembleOschinaDebug]:app:preBuild UP-TO-DATE :app:preOschinaDebugBuild UP-TO-DATE :app:checkOschinaDebugManifest :app:preOschinaReleaseBuild UP-TO-DATE :app:preWandoujiaDebugBuild UP-TO-DATE :app:preWandoujiaReleaseBuild UP-TO-DATE :app:preXiaomiDebugBuild UP-TO-DATE :app:preXiaomiReleaseBuild UP-TO-DATE :open:preBuild UP-TO-DATE :open:preReleaseBuild UP-TO-DATE :open:compileReleaseNdk UP-TO-DATE :open:compileLint :open:copyReleaseLint UP-TO-DATE :open:checkReleaseManifest :open:preDebugAndroidTestBuild UP-TO-DATE :open:preDebugBuild UP-TO-DATE :open:preDebugUnitTestBuild UP-TO-DATE :open:preReleaseUnitTestBuild UP-TO-DATE :open:prepareComAndroidSupportSupportCompat2510Library UP-TO-DATE :open:prepareComAndroidSupportSupportCoreUi2510Library UP-TO-DATE :open:prepareComAndroidSupportSupportCoreUtils2510Library UP-TO-DATE :open:prepareComAndroidSupportSupportFragment2510Library UP-TO-DATE :open:prepareComAndroidSupportSupportMediaCompat2510Library UP-TO-DATE :open:prepareComAndroidSupportSupportV42510Library UP-TO-DATE :open:prepareReleaseDependencies :open:compileReleaseAidl UP-TO-DATE :open:compileReleaseRenderscript UP-TO-DATE :open:generateReleaseBuildConfig UP-TO-DATE :open:mergeReleaseShaders UP-TO-DATE :open:compileReleaseShaders UP-TO-DATE :open:generateReleaseAssets UP-TO-DATE :open:mergeReleaseAssets UP-TO-DATE :open:generateReleaseResValues UP-TO-DATE :open:generateReleaseResources UP-TO-DATE :open:mergeReleaseResources UP-TO-DATE :open:processReleaseManifest UP-TO-DATE :open:processReleaseResources UP-TO-DATE :open:generateReleaseSources UP-TO-DATE :open:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE :open:compileReleaseJavaWithJavac UP-TO-DATE :open:extractReleaseAnnotations UP-TO-DATE :open:mergeReleaseProguardFiles UP-TO-DATE :open:packageReleaseRenderscript UP-TO-DATE :open:packageReleaseResources UP-TO-DATE :open:processReleaseJavaRes UP-TO-DATE :open:transformResourcesWithMergeJavaResForRelease UP-TO-DATE :open:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE :open:mergeReleaseJniLibFolders UP-TO-DATE :open:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE :open:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE :open:bundleRelease UP-TO-DATE :app:prepareAndroidAppOpenUnspecifiedLibrary UP-TO-DATE :app:prepareComAndroidSupportAnimatedVectorDrawable2510Library UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72510Library UP-TO-DATE :app:prepareComAndroidSupportCardviewV72510Library UP-TO-DATE :app:prepareComAndroidSupportDesign2510Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72510Library UP-TO-DATE :app:prepareComAndroidSupportSupportCompat2510Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUi2510Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUtils2510Library UP-TO-DATE :app:prepareComAndroidSupportSupportFragment2510Library UP-TO-DATE :app:prepareComAndroidSupportSupportMediaCompat2510Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42510Library UP-TO-DATE :app:prepareComAndroidSupportSupportVectorDrawable2510Library UP-TO-DATE :app:prepareComAndroidSupportTransition2510Library UP-TO-DATE :app:prepareComGithubChrisbanesPhotoviewLibrary124Library UP-TO-DATE :app:prepareComMakeramenRoundedimageview211Library UP-TO-DATE :app:prepareDeHdodenhofCircleimageview200Library UP-TO-DATE :app:prepareNetOschinaCommonCommon010Library UP-TO-DATE :app:prepareNetOschinaCommonNative010Library UP-TO-DATE :app:prepareNetQiujuerGeniusGraphics200Beta8Library UP-TO-DATE :app:prepareNetQiujuerGeniusKitHandler200Beta8Library UP-TO-DATE :app:prepareNetQiujuerGeniusKitReflect200Beta9Library UP-TO-DATE :app:prepareNetQiujuerGeniusRes200Beta8Library UP-TO-DATE :app:prepareNetQiujuerGeniusUi200Beta8Library UP-TO-DATE :app:prepareOrgKymjsKjframeKjframe26Library UP-TO-DATE :app:preparePubDevrelEasypermissions017Library UP-TO-DATE :app:prepareOschinaDebugDependencies :app:compileOschinaDebugAidl UP-TO-DATE :app:compileOschinaDebugRenderscript UP-TO-DATE :app:generateOschinaDebugBuildConfig UP-TO-DATE :app:mergeOschinaDebugShaders UP-TO-DATE :app:compileOschinaDebugShaders UP-TO-DATE :app:generateOschinaDebugAssets UP-TO-DATE :app:mergeOschinaDebugAssets UP-TO-DATE :app:generateOschinaDebugResValues UP-TO-DATE :app:generateOschinaDebugResources UP-TO-DATE :app:mergeOschinaDebugResources UP-TO-DATE :app:processOschinaDebugManifest UP-TO-DATE :app:processOschinaDebugResources UP-TO-DATE :app:generateOschinaDebugSources UP-TO-DATE :app:incrementalOschinaDebugJavaCompilationSafeguard :app:compileOschinaDebugJavaWithJavac :app:compileOschinaDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.). D:\androidopen\android-app\app\src\main\java\net\oschina\app\fragment\ActiveFragment.java Error:(137, 19) 錯誤: 找不到符號 符號: 方法 getActiveList(int,int,int,AsyncHttpResponseHandler) 位置: 類 OSChinaApi D:\androidopen\android-app\app\src\main\java\net\oschina\app\fragment\CommentFrament.java Error:(76, 29) 錯誤: 找不到符號 符號: 方法 sendBroadCastCommentChanged(FragmentActivity,boolean,int,int,int,Comment) 位置: 類 UIHelper D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\comment\CommentExsView.java Error:(168, 79) 錯誤: 不兼容的類型: net.oschina.app.improve.bean.simple.Comment.Refer無法轉(zhuǎn)換為net.oschina.app.improve.bean.comment.Refer[] Error:(184, 59) 錯誤: 不兼容的類型: CommentEX無法轉(zhuǎn)換為Comment D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\comment\CommentsView.java Error:(166, 79) 錯誤: 不兼容的類型: net.oschina.app.improve.bean.simple.Comment.Refer無法轉(zhuǎn)換為net.oschina.app.improve.bean.comment.Refer[] Error:(176, 51) 錯誤: 不兼容的類型: net.oschina.app.improve.bean.simple.Comment無法轉(zhuǎn)換為net.oschina.app.improve.bean.comment.Comment Error:(191, 29) 錯誤: 無法將類 CommentsActivity中的方法 show應用到給定類型; 需要: Context,long,int,int 找到: Context,long,int 原因: 實際參數(shù)列表和形式參數(shù)列表長度不同 D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\comment\QuestionAnswerDetailActivity.java Error:(308, 19) 錯誤: 找不到符號 符號: 方法 getComment(long,long,int,<匿名TextHttpResponseHandler>) 位置: 類 OSChinaApi D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\BlogActionAdapter.java Error:(24, 66) 錯誤: 找不到符號 符號: 變量 blog_item 位置: 類 array D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\BlogAdapter.java Error:(99, 23) 錯誤: 找不到符號 符號: 方法 isOnReadedPostList(String,String) 位置: 類 AppContext D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\EventAdapter.java Error:(27, 27) 錯誤: 找不到符號 符號: 方法 isOnReadedPostList(String,String) 位置: 類 AppContext D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\NewsAdapter.java Error:(32, 23) 錯誤: 找不到符號 符號: 方法 isOnReadedPostList(String,String) 位置: 類 AppContext D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\QuesActionAdapter.java Error:(24, 66) 錯誤: 找不到符號 符號: 變量 ques_item 位置: 類 array D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\adapter\QuestionAdapter.java Error:(67, 23) 錯誤: 找不到符號 符號: 方法 isOnReadedPostList(String,String) 位置: 類 AppContext D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\fragments\BlogFragment.java Error:(234, 19) 錯誤: 找不到符號 符號: 方法 getBlogList(int,String,TextHttpResponseHandler) 位置: 類 OSChinaApi Error:(252, 13) 錯誤: 找不到符號 符號: 方法 updateTextColor(TextView,TextView) 位置: 類 BlogFragment Error:(254, 13) 錯誤: 找不到符號 符號: 方法 saveToReadedList(String,String) 位置: 類 BlogFragment D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\fragments\EventFragment.java Error:(80, 19) 錯誤: 無法將類 OSChinaApi中的方法 getEventList應用到給定類型; 需要: int,int,AsyncHttpResponseHandler 找到: String,TextHttpResponseHandler 原因: 實際參數(shù)列表和形式參數(shù)列表長度不同 Error:(89, 13) 錯誤: 找不到符號 符號: 方法 updateTextColor(TextView,<空值>) 位置: 類 EventFragment Error:(90, 13) 錯誤: 找不到符號 符號: 方法 saveToReadedList(String,String) 位置: 類 EventFragment Error:(112, 19) 錯誤: 找不到符號 符號: 方法 getBannerList(int,<匿名TextHttpResponseHandler>) 位置: 類 OSChinaApi D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\fragments\NewsFragment.java Error:(103, 19) 錯誤: 找不到符號 符號: 方法 getNewsList(String,TextHttpResponseHandler) 位置: 類 OSChinaApi Error:(115, 13) 錯誤: 找不到符號 符號: 方法 updateTextColor(TextView,TextView) 位置: 類 NewsFragment Error:(116, 13) 錯誤: 找不到符號 符號: 方法 saveToReadedList(String,String) 位置: 類 NewsFragment Error:(146, 19) 錯誤: 找不到符號 符號: 方法 getBannerList(int,<匿名TextHttpResponseHandler>) 位置: 類 OSChinaApi D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\general\fragments\QuestionFragment.java Error:(201, 19) 錯誤: 找不到符號 符號: 方法 getQuestionList(int,String,TextHttpResponseHandler) 位置: 類 OSChinaApi Error:(253, 13) 錯誤: 找不到符號 符號: 方法 updateTextColor(TextView,TextView) 位置: 類 QuestionFragment Error:(255, 13) 錯誤: 找不到符號 符號: 方法 saveToReadedList(String,String) 位置: 類 QuestionFragment D:\androidopen\android-app\app\src\main\java\net\oschina\app\improve\main\tabs\GeneralViewPagerFragment.java Error:(39, 64) 錯誤: 找不到符號 符號: 變量 general_viewpage_arrays 位置: 類 array 注: 某些輸入文件使用或覆蓋了已過時的 API。 注: 有關(guān)詳細信息, 請使用 -Xlint:deprecation 重新編譯。 注: 某些輸入文件使用了未經(jīng)檢查或不安全的操作。 注: 有關(guān)詳細信息, 請使用 -Xlint:unchecked 重新編譯。 注: 某些消息已經(jīng)過簡化; 請使用 -Xdiags:verbose 重新編譯以獲得完整輸出 29 個錯誤 :app:compileOschinaDebugJavaWithJavac FAILED Error:Execution failed for task ':app:compileOschinaDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details. Information:BUILD FAILED Information:Total time: 3 mins 0.613 secs Information:30 errors Information:0 warnings Information:See complete output in console
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
@巴拉迪維 你好,想跟你請教個問題: @巴拉迪維 你好,想跟你請教個問題:
oschina的2.6.6客戶端我導入到as2.2后 注釋了簽名可以正常編譯但是
Module Setting?中的Complie Sdk等都是空的,我添加相應的內(nèi)容后報Android() 項無效 ,我添加了
apply plugin: 'com.android.application'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildToolsVersion '23.0.3'
compileSdkVersion 19
}
?
?后報AndroidManifest.xml找不到包名了?
這個應該怎么解決呢,謝謝
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
在把oschina app導入android studio的時候
出現(xiàn)Error:Could not get unknown property 'RELEASE_STORE_FILE' for SigningConfig_Decorated{name=debug, storeFile=C:
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> OSChina安卓版是怎么做屏幕自適應的啊,就是適應不同分辨率的手機????
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
在build.gradle中,修改為 compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:recyclerview-v7:23.1.1' 但依然報如下問題:Error:A problem occurred configuring project ':app'. > Could not resolve all dependencies for configuration ':app:_debugCompile'. > Could not find com.android.support:appcompat-v7:23.4.0. Searched in the following locations: https://jcenter.bintray.com/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0.pom https://jcenter.bintray.com/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0.jar
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> 今早去看2.6.3的版本,發(fā)現(xiàn)2.6.3的代碼貌似是2.6.2的,什么情況
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> 使用fiddler對OSCHINA Android 客戶端進行抓包,為什么看不到請求url。圖片下載是可以看到的,但是數(shù)據(jù)請求的信息確沒有,連亂碼什么的都沒有。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
@巴拉迪維 你好,想跟你請教個問題:現(xiàn)在的源碼是1.7的 ,2.0的源碼何時上啊
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
如題?!伴_源中國”(綠色圖標)的APP可以登錄 ,但是單獨下載這個,用同一個帳號密碼登錄提示說 “用戶未登錄 或密碼錯誤”
http://www.wandoujia.com/apps/net.oschina.gitapp
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
你看我的這個是透明的。但是知乎和osc的都是白色的
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
有部分請求失敗,可能是網(wǎng)絡的原因,對于這部分請求我應該如何正確的去處理?因為是初探爬蟲這一塊,不是太懂。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> public class TestPageProcessor implements PageProcessor { private Site site = Site.me().setRetryTimes(3).setSleepTime(3000) .setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0"); @Override public void process(Page page) { Html html = page.getHtml(); List list = html.$(".nav").$("a").all(); } @Override public Site getSite() { return site; } public static void main(String[] args) { Spider.create(new TestPageProcessor()).addUrl("http://hbda.gov.cn/").thread(5).run(); //Spider.create(new TestPageProcessor()).addUrl("http://www.longhoo.net/").thread(5).run(); } 控制臺打印信息如下: 19:51:40-[INFO] us.codecraft.webmagic.Spider Spider hbda.gov.cn started! 19:51:40-[INFO] us.codecraft.webmagic.downloader.HttpClientDownloader downloading page success http://hbda.gov.cn/ 19:51:40-[INFO] us.codecraft.webmagic.Spider page status code error, page http://hbda.gov.cn/ , code: 412 19:51:43-[INFO] us.codecraft.webmagic.Spider Spider hbda.gov.cn closed! 1 pages downloaded. }
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
我在抓取的軟件是這樣的,url只有一個,但是每次通過post請求設置不同的參數(shù)值來獲取不同的內(nèi)容,但是因為 Scheduler的去重使得post請求只進行了一次,那么請問我如何關(guān)閉 Scheduler的去重功能呢?
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
@黃億華 你好,想跟你請教個問題:我在抓取網(wǎng)頁的時候利用了FileCacheQueueScheduler,運行后發(fā)現(xiàn)網(wǎng)頁已經(jīng)抓取完畢,jconsole中也表示線程狀態(tài)為stopped,但是java程序卻沒停。我將 FileCacheQueueScheduler換成 QueueScheduler就不會出現(xiàn)這個問題,請問這是什么原因呢?
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
@黃億華 你好,想跟你請教個問題:請問webmagic這個項目您還維護嗎?后續(xù)會不會出新版本?
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
如圖所示,怎么只獲取最后一個?
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
首先是有一個地圖,然后點擊地圖上的點位,抓取彈出蒙版的數(shù)據(jù),求解
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
我最近在學習WebMagic框架,但是被一個功能實現(xiàn)一直困擾。我想實現(xiàn)前端控制爬蟲停止,就是說當我前端點擊停止按鈕時,調(diào)用后臺的爬蟲停止方法。但是WebMagic的API只提供的Stop方法,但是調(diào)用后不起效果,一直顯示空指針異常,請問大家有比較好的實現(xiàn)方法嗎?
前端展示:
先調(diào)用action中的start方法,在爬蟲運行過程中調(diào)用stop方法 public class ZhihuTopicAction extends BaseAction{ private Spider spider=null; @Autowired private ZhiHuTopicProcessor zhiHuProcessor; @Autowired private IZhiHuTopicService zhiHuTopicService; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String stop() { spider.stop(); return SUCCESS; } public String start() { spider=Spider.create(zhiHuProcessor); //啟動爬蟲 spider.addUrl(url).thread(5).run(); return null; } }
錯誤提示: java.lang.NullPointerException at cn.yll.goCrawler.action.ZhihuTopicAction.stop(ZhihuTopicAction.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870) at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293) at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117) at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108) at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1369) at ognl.ASTMethod.getValueBody(ASTMethod.java:90) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) at ognl.SimpleNode.getValue(SimpleNode.java:258) at ognl.Ognl.getValue(Ognl.java:494) at ognl.Ognl.getValue(Ognl.java:458) at com.opensymphony.xwork2.ognl.OgnlUtil$2.execute(OgnlUtil.java:309) at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:340) at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:307) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:423) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:287) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:250) at org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503) at java.lang.Thread.run(Thread.java:745)
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
客戶端調(diào)試代碼如下:
package com.oking.ws;
import javax.xml.namespace.QName;
import org.apache.cxf.aegis.databinding.AegisDatabinding;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
public class TexstClient {
public static void main(String[] args) {
try {
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
String serviceURL;
if (args != null && args.length > 0 && !"".equals(args[0])) {
serviceURL = args[0];
} else {
serviceURL = "http://localhost:8080/sz-dzda/dorado/webservice/UserService.wsdl";
}
factory.setServiceName(new QName("http://www.bstek.com/ws",
"User"));
factory.setAddress(serviceURL);
factory.setWsdlURL(serviceURL);
System.out.println(serviceURL);
factory.getServiceFactory().setDataBinding(new AegisDatabinding());
User client = factory.create(User.class);
System.out.println("Invoke sayHi()....");
System.out.println(client.getUsername());
// System.out.println(client.sayHi(System.getProperty("user.name")));
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
然后測試就報這樣的錯了
2014-10-11 14:51:46 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://www.bstek.com/ws}User from WSDL: http://localhost:8080/sz-dzda/dorado/webservice/UserService.wsdl
org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://www.bstek.com/ws}User.
at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:171)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:426)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:546)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:156)
at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:93)
at com.oking.ws.TexstClient.main(TexstClient.java:24)
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
運行環(huán)境 Linux weblogic 10.3 JDK1.6.0_45
代碼片段
public ClaimResponse getTaWsResponse(String method, ClaimRequest claim) {
Long time = Calendar.getInstance().getTimeInMillis();
String response = null;
ClaimResponse claimResponse = null;
Long a = System.currentTimeMillis();
HTTPConduit http = null;
org.apache.cxf.endpoint.Client client = null;
try {
String xml = XStreamUtil.toXML(claim, ClaimRequest.class);
logger.info(sdf.format(new Date())+":"+xml);
systemService.addLog(time+":"+StringUtil.replaceBlank(xml), Globals.Log_Type_WS, Globals.Log_Leavel_INFO);
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory
.newInstance();
client = dcf
.createClient(ResourceUtil.getConfigByName("ws_path"));
QName opName = new QName(ResourceUtil.getConfigByName("qname_path"), method);
http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(10000); //連接超時
httpClientPolicy.setAllowChunking(false); //取消塊編碼
httpClientPolicy.setReceiveTimeout(30000); //響應超時
http.setClient(httpClientPolicy);
Object[] objects = client.invoke(opName,xml);
if(objects.length > 0){
// 輸出調(diào)用結(jié)果
response = objects[0].toString();
logger.info(sdf.format(new Date())+":"+response);
}else{
systemService.addLog(time+":返回結(jié)果為空", Globals.Log_Type_WS, Globals.Log_Leavel_ERROR);
return null;
}
claimResponse = XStreamUtil.fromXML(response, ClaimResponse.class);
} catch (Exception e) {
Long b = System.currentTimeMillis();
systemService.addLog("webservice消耗時間:" + (b-a), Globals.Log_Type_WS, Globals.Log_Leavel_INFO);
e.printStackTrace();
systemService.addLog(time+":"+e.getLocalizedMessage(), Globals.Log_Type_WS, Globals.Log_Leavel_ERROR);
return null;
}finally{
if(http!=null){
http.close();
http = null;
}
if(client!=null){
client.destroy();
client = null;
}
}
return claimResponse;
}
}
異常說明 ,weblogic服務節(jié)點啟動時 CXF代碼能正常運行,但是正常運行了一段時間后 不知道什么原因就會報一下異常,重啟服務節(jié)點CXF客戶端又能正常運行:
[org.apache.cxf.endpoint.dynamic.DynamicClientFactory]Could not compile java files for http://claim.tianan-insurance.com/cxfServices/Claim2Delegate?wsdl.
java.lang.IllegalStateException: Unable to create JAXBContext for generated packages: "com.sinosoft.application.interact.webservice.provider.delegate.delegateinterfacade" doesnt contain ObjectFactory.class or jaxb.index
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:397)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:241)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:234)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:189)
at com.dispatch.service.tianan.impl.TaWsServiceImpl.getTaWsResponse(TaWsServiceImpl.java:48)
at com.dispatch.service.tianan.impl.TaDispatchServiceImpl.delegateNormalTask(TaDispatchServiceImpl.java:157)
at com.dispatch.controller.survey.TaCaseInfoController2.submitTasks(TaCaseInfoController2.java:3137)
at sun.reflect.GeneratedMethodAccessor925.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at com.dispatch.util.InitFilter.doFilter(InitFilter.java:35)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.tapi.tcs.tf.security.authentication.CustomLogoutFilter.doFilter(CustomLogoutFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.tapi.cas.client.filter.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.tapi.tcs.tf.security.authentication.CookieSessionContextIntegrationFilter.doFilter(CookieSessionContextIntegrationFilter.java:25)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.tapi.tcs.tf.security.authentication.CustomExceptionTranslationFilter.doFilter(CustomExceptionTranslationFilter.java:41)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:140)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:119)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3739)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3705)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2282)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2181)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: javax.xml.bind.JAXBException: "com.sinosoft.application.interact.webservice.provider.delegate.delegateinterfacade" doesnt contain ObjectFactory.class or jaxb.index
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:233)
at sun.reflect.GeneratedMethodAccessor678.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:128)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:277)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:394)
... 75 more
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
如題,樓主折騰一天了,就是出不來想要的效果,簡單給大家描述下:
1.想要的效果如圖:
2.但做出來的效果卻如圖:(~~~~(>_<)~~~~)
3.結(jié)果首先功能沒有問題已經(jīng)過驗證,所以就是哪里需要配置下就好,愣是找不到還需要配哪里。
如圖,這是cxf的配置文件,命名空間已加。
4.后來網(wǎng)上找了資料,問了大神們,都說需要加一個package-info.java在同一目錄下即可。
如圖,這倆文件都加了。
代碼如下:
package-info.java:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://oa.soa.csg.cn",elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package cn.csg.soa.oa.workbench;
ObjectFactory.java,比較長,就只截出關(guān)鍵部分:
----------------------------------------------
PS:該加的都加了,可用soapui工具進行wsdl地址的調(diào)試時,請求報文如1圖所示,是有空間前綴的。但是響應報文如圖所示就是沒有,無奈了已經(jīng)。
PS2:然后又搜了一些資料,有一個大神說把ObjectFactory.java中response的namespace=“”,就能出來了,事實是,確實出來了,但是是ns2,不是自己想要的。
PS3:如上,想到既然是ns2,干脆用cxf的攔截器獲取報文然后全部改成oa不就好了嗎,然后又去網(wǎng)上找了攔截器的資料,根據(jù)參考代碼實現(xiàn)了,我靠,還真可以。
PS4:如上,高興之余,以為自己牛筆了搞定了,結(jié)果發(fā)現(xiàn)cxf攔截器獲取報文的那段代碼如果數(shù)據(jù)過大,就不會打印出來,尼瑪,不打印出來我還改個J8啊……然后就淚崩了。~~o(>_<)o ~~
以上便是樓主心路歷程,領導還一直催著趕緊完成,樓主依然接近崩潰,希望遇到過類似問題的大神伸出援助之手,好人一生平安,祝你遇到美女倒貼。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
寫法就是在網(wǎng)上搜到的,基本都是這么寫的。
OutputStream os = message.getContent(OutputStream.class);
CachedStream cs = new CachedStream();
message.setContent(OutputStream.class, cs);
message.getInterceptorChain().doIntercept(message);
CachedOutputStream csnew = (CachedOutputStream) message.getContent(OutputStream.class);
InputStream in = csnew.getInputStream();
String xml = IOUtils.toString(in);
System.out.println("攔截器得到輸出報文:" + xml);
一開始用著沒問題,但是發(fā)現(xiàn)返回的報文如果太大,攔截器打印的輸出報文就是空的。
如果過濾一下where條件讓返回的報文變少點,發(fā)現(xiàn)攔截器打印的輸出報文又出來了。
哪位大神知道cxf攔截器輸出報文是不是有什么長度范圍限制之類的- -
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
目前寫了一個后臺程序,對外提供接口是用cxf寫 的webservice
安全方面的考慮要對返回數(shù)據(jù)進行加密
所以用了攔截器機制 繼承AbstractPhaseInterceptor
super(Phase.PRE_STREAM); // 觸發(fā)點在流關(guān)閉之前
主要代碼 基本也是網(wǎng)上的
public void handleMessage(Message message) {
OutputStream os = message.getContent(OutputStream.class);
CachedStream cs = new CachedStream();
message.setContent(OutputStream.class, cs);
message.getInterceptorChain().doIntercept(message);
CachedOutputStream csnew = (CachedOutputStream) message.getContent(OutputStream.class);
InputStream in = csnew.getInputStream();
String result = getRetern(IOUtils.toString(in,"UTF-8"));
IOUtils.copy(new ByteArrayInputStream(result.getBytes("UTF-8")), os);
cs.close();
os.flush();
message.setContent(OutputStream.class, os);
}
返回的數(shù)據(jù)是用的json格式
當數(shù)據(jù)量小時沒問題,但是一旦數(shù)據(jù)量過大就會報錯 出現(xiàn)
Unexpected EOF in prolog
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> 比如這樣一個URL:
http://localhost:8080/rest/cxf/person/persons/1/hobby/2
我這樣寫為什么老是提示404 not found,特來求高人相助!!!!
//不配置@Produces則默認接口返回值數(shù)據(jù)的MIME類型是application/xml @Path(value = "/person") @Produces({"application/xml"}) public interface PersonService { /** * @Title: queryHobbyOfPepole * @Description: 返回某Person的某個愛好 * @param personId * @param hobbyId * @return */ @GET @Path("/persons/{personId}/hobby/{hobbyId}") public Hobby queryHobbyOfPepole(@PathParam("personId") int personId,@PathParam("hobbyId") int hobbyId); }
下面是客戶端調(diào)用代碼:@Test public void testGetHobby() { ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); WebResource service = client.resource(getBaseURI()); String result = service .path("person").path("persons").path("1") .path("hobby").path("2") .accept(MediaType.APPLICATION_XML) .get(String.class); System.out.println(result.toString()); }
下面是調(diào)用后返回的異常信息:2013-12-26 18:13:23 org.apache.cxf.jaxrs.utils.JAXRSUtils findTargetMethod 警告: No operation matching request path "/rest/cxf/person/1/hobby/2" is found, Relative Path: /1/hobby/2, HTTP Method: GET, ContentType: */*, Accept: application/xml,. Please enable FINE/TRACE log level for more details. 2013-12-26 18:13:23 org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse 警告: javax.ws.rs.ClientErrorException: HTTP 404 Not Found at org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod(JAXRSUtils.java:540) at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:181) at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:86) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:287) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:251) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source)
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> 怎樣用CXF和spring和mybatis來搭建一個項目,求指教。最好有一個完整的demo。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'insertImpl': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/Class;)Z
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/Class;)Z
at org.apache.cxf.common.util.SpringAopClassHelper.getRealClassInternal(SpringAopClassHelper.java:85)
at org.apache.cxf.common.util.ClassHelper.getRealClass(ClassHelper.java:65)
at org.apache.cxf.jaxws.EndpointImpl.getImplementorClass(EndpointImpl.java:215)
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:399)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:539)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1706)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1645)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
... 21 more
三月 01, 2017 10:56:52 上午 org.apache.catalina.core.StandardContext startInternal
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
1.apache網(wǎng)站下載CXF http://cxf.apache.org/download.html
2.創(chuàng)建一個java工程,將以下jar包復制到工程的classpath下
所有的jar包都可以在${CXF_HOME}\lib目錄中找到
3.定義服務接口HelloWorldService
因為這個接口將會被我們暴露為webservice,所以給該接口加一個@WebService標注 package com.crazycoder2010.webservice.cxf.server; import javax.jws.WebParam; import javax.jws.WebService; /** * 服務器端對外提供的服務 * @author Kevin_Wang03 * */ @WebService public interface HelloWorldService { /** * 簡單的字符串參數(shù) * @param userName * @return */ public String sayHello(@WebParam(name="userName") String userName); /** * 參數(shù)為對象的情況 * @param user * @return */ public String sayHelloToUser(User user); }
4.提供具體的webservice提供者HelloWorldServiceImpl
這個實現(xiàn)類實現(xiàn)了我們上面的服務接口,除了要添加@WebService標注外,還要定義該服務的名稱serviceName="helloWorldService" 和endpoint(服務接口),其他和普通類沒有任何區(qū)別 package com.crazycoder2010.webservice.cxf.server; import javax.jws.WebService; /** * 默認的webservice實現(xiàn) * * @author Kevin_Wang03 * */ @WebService(endpointInterface = "com.crazycoder2010.webservice.cxf.server.HelloWorldService", serviceName = "helloWorldService") public class HelloWorldServiceImpl implements HelloWorldService { @Override public String sayHello(String userName) { System.out.println("HelloWorldServiceImpl.sayHello("+userName+")"); return "Hello,"+userName; } @Override public String sayHelloToUser(User user) { System.out.println("HelloWorldServiceImpl.sayHelloToUser("+user+")"); return "Hello,("+user.getId()+","+user.getName()+")"; } }
5.通過JAX-WS將類發(fā)布為服務
這個是個普通類,要發(fā)布一個webservice,首先要定義好這個webservice的訪問地址和端口,然后需要知道把哪個類發(fā)布成服務,就這么簡單?yes! package com.crazycoder2010.webservice.cxf.server; import javax.xml.ws.Endpoint; public class Server { public static void main(String[] args) { System.out.println("Starting Server"); HelloWorldServiceImpl helloWorldServiceImpl = new HelloWorldServiceImpl(); String address = "http://localhost:9000/helloWorldService"; Endpoint.publish(address, helloWorldServiceImpl); System.out.println("Start success"); } }
6.通過URL訪問WSDL看看是否顯示正常
http://localhost:9000/helloWorldService?wsdl
分析輸出的wsdl文件
6.1
這個name就是我們在HelloWorldServiceImpl類的標注serviceName="helloWorldService"生成的
6.2
注意到我們的代碼位于com.crazycoder2010.webservice.cxf.server中,記得sun推薦的包的命名標準嗎?就是公司域名翻轉(zhuǎn)加上項目名,那把包名翻過來是什么?-你懂得,CXF就用了這種機制
6.3
這個即是我們定義在服務接口中的方法,在wsdl文件中將接口中的方法定義成服務方法,里面的子元素定義了該方法的參數(shù)
6.4
這個是對接口服務方法返回值的描述,默認遵循以下約定對方法的描述為sayHello,則返回值的描述為sayHelloResponse
6.5
這個描述把服務和方法綁定起來,與Response是成對出現(xiàn)的
6.6
這里就是我們上面在代碼里完成的服務的訪問地址
小結(jié):
HelloWorld 是跑起來了,感覺比先前用的JAX-RPC要簡單的多了,幾分鐘就可以搞定一個webservice--也許這就是框架的魅力,但是也有一些疑問,如要運行這么小一個helloWorld,要依賴20幾個jar包,其中還有Jetty的jar包若干!竟然還有org.eclipse.jetty.*這種包,不知道設計這個框架的同學是怎么考慮的,為什么要把webservice和jetty或eclipse扯上關(guān)系,可能看的不夠深,明天繼續(xù)研究。
原文轉(zhuǎn)自: http://blog.csdn.net/crazycoder2010/article/details/6673269
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
請教大家一個關(guān)于CXF獲取SoapHeader的問題:
產(chǎn)品中需要實現(xiàn)電信的ISAG服務端,因為 CXF 和Spring的集成比較方便所以產(chǎn)品中的WebService一直都使用CXF,目前遇到一個問題,就是如何獲取SoapHeader,網(wǎng)上找了一下都是通過攔截器方式獲取和解析的,但是這樣的話該怎么把SoapHeader中的數(shù)據(jù)傳遞到到后面的方法中去呢。求解決方案。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> 我已經(jīng)在環(huán)境變量中配置了path、classpath、cxf_home,而且我看lib目錄下也有cxf-manifest.jar,但執(zhí)行wsdl2java還是有這個錯誤,而且我用全路徑執(zhí)行wsdl2java,也提示這個錯誤,不知到底是什么原因,求高手解答!謝謝
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
服務端使用HTTPS協(xié)議 web services使用 CXF 自動生成的代碼如何訪問
客戶測試的時候給的是服務端是HTTP協(xié)議。這個使用CXF把客戶給的WSDL生成代碼可以連接調(diào)通,但是上生產(chǎn)客戶突然說服務端的web services會使用HTTPS協(xié)議進行傳輸,這個就目前造成我的代碼需要改動?,F(xiàn)在沒有思路。需要從哪里動手。能否給個建議或者思路,謝謝。
CXF生產(chǎn)代碼類
目前客戶端代碼
大神們提示需要從哪里下手。。
萬分感謝
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> package XXX.web.webservice.interceptor; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.io.IOUtils; import org.apache.cxf.io.CachedOutputStream; import org.apache.cxf.message.Message; import org.apache.cxf.phase.AbstractPhaseInterceptor; import org.apache.cxf.phase.Phase; import org.apache.log4j.Logger; public class ArtifactOutInterceptor extends AbstractPhaseInterceptor{ private static final Logger log = Logger.getLogger(ArtifactOutInterceptor.class); public ArtifactOutInterceptor() { //這兒使用pre_stream,意思為在流關(guān)閉之前 super(Phase.PRE_STREAM); } public void handleMessage(Message message) { try { OutputStream os = message.getContent(OutputStream.class); CachedStream cs = new CachedStream(); message.setContent(OutputStream.class, cs); message.getInterceptorChain().doIntercept(message); CachedOutputStream csnew = (CachedOutputStream) message.getContent(OutputStream.class); InputStream in = csnew.getInputStream(); String xml = IOUtils.toString(in); //這里對xml做處理,處理完后同理,寫回流中 IOUtils.copy(new ByteArrayInputStream(xml.getBytes()), os); cs.close(); os.flush(); message.setContent(OutputStream.class, os); } catch (Exception e) { log.error("Error when split original inputStream. CausedBy : " + "\n" + e); } } private class CachedStream extends CachedOutputStream { public CachedStream() { super(); } protected void doFlush() throws IOException { currentStream.flush(); } protected void doClose() throws IOException { } protected void onWrite() throws IOException { } } }
源代碼就是這樣的。只要XML太長太大了就或失??!請大師指點!
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
checkLength 2555555
這是配置用camel調(diào)用web service上的checkLength方法 現(xiàn)在的問題是:上面的serviceClass必須要配置 用camel調(diào)用web service必須先要生成java代碼嗎(serviceClass必須配置)? 能不能不生成,直接用camel調(diào)用
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
cxf RESTful Web services 沒有WADL信息?
貌似3.x的版本看不到,我在2.7里面看到,但是我不能確定是不是這樣的。
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>>
iScroll demo: simple
這個例子是網(wǎng)上比較常見的,下過來的時候,上拉下拉刷新都是添加的靜態(tài)元素,我添加ajax后,就出現(xiàn)了樣式問題,刷新后滾動條長度不變,但是內(nèi)容長度變了,達不到底部。得改變下瀏覽器高度才能使?jié)L動條正常。。不知道什么原因。
急需大神求解!謝謝!給個思路也行
HDC調(diào)試需求開發(fā)(15萬預算),能者速來!>>> jquery mobile text輸入框怎么能夠去掉獲得焦點時候的藍色邊框