当xercesImpl.jar位于classpath上时,NetBeans Web Service客户端出现问题 [英] Problem with NetBeans Web Service Client when xercesImpl.jar is on classpath

查看:141
本文介绍了当xercesImpl.jar位于classpath上时,NetBeans Web Service客户端出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用NetBeans 6.9和GlassFish 3.0.1时,我无法在NetBeans Web应用程序中创建Web服务客户端。



创建新的Web应用程序

2.)创建一个新的Web服务

3.)添加一个创建的Web服务的新操作(只是让它返回null - 实现不重要)

4.)将Web服务部署到GlassFish(工作正常)

5.)将 xercesImpl.jar (我使用版本2.9.1)作为库添加到Web服务(我需要使用我使用的第三方库的xerces)

6.)停止Glassfish。

7.)清理并生成项目。

8.)运行项目。测试Web服务仍然有效(它确实)。

9.)创建一个新的Web服务客户端。将其指向WSDL(我正在使用 http://www.webservicex.com/CurrencyConvertor.asmx ?wsdl 就像一个测试)。
10.)停止Glassfish。

11.)清理并生成项目。

显示错误消息:


\NetBeansProjects\WSTest\\\
bproject\jaxws-build。 xml:43:
启动wsimport时出错:BUILD FAILED
(总时间:1秒)

43行是:

 < wsimport sourcedestdir =$ {build.generated.dir} / jax-wsCache / CurrencyConvertor
destdir =$ {build.generated.dir} / jax-wsCache / CurrencyConvertorwsdl =
$ {basedir} / $ {conf-dir} xml-resources / web-service-references /
CurrencyConvertor / wsdl / www.webservicex.com / CurrencyConvertor.asmx.wsdl
catalog =catalog.xmlextension =trueverbose =true
wsdlLocation =http:// www .webservicex.com / CurrencyConvertor.asmx? wsdl
xnocompile =truexendorsed =true>

12.)重新启动NetBeans。

13.)清理并生成项目。 (生成现在工作)

14.)运行该项目。 GlassFish除了这个单行错误信息外,还可以正常启动:


SEVERE:解析目录时出错

15.)加载Web Service Tester页面在GlassFish日志中产生以下异常:

 警告:Servlet Web服务端点'NewWebService'失败
java.lang.IllegalStateException:WEB9031:WebappClassLoader无法加载资源[META-INF / services / org.apache.xerces.xni.parser .XMLParserConfiguration],因为它还没有启动,或者已经停止
在org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2085)
在org.glassfish.web。 loader.WebappClassLoader.findResource(WebappClassLoader.java:1018)
位于org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1255)
位于org.apache.xerces.parsers.SecuritySupport $ 6 .run(未知源)$ java.util.AccessController.doPri中的b $ b vileged(Native Method)
at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.SAXParser。 < init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser。< init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl $ JAXPSAXParser。< init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl。< init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader.readCatalog(SAXCatalogReader.java:238)
at com.sun.org.apache.xml.internal.resolver.Catalog .parseCatalog(Catalog.java:680)
at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver (XmlUtil.java:270)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560)
at org.glassfish.webservices.JAXWSServlet.registerEndpoint(JAXWSServlet .java:405)
at org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:264)
at org.glassfish.webservices.JAXWSServlet.init(JAXWSServlet.java:99)
在org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1428)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1060)
at org。 apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:187)
处org.apache.catalina org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
。 core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline。调用(PESessionLockingStandardPipeline.java:85)
在org.apache.catalina.core.StandardHost Valve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter( ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java: 954)
在com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
在com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http .httpProtocolChain.execute(HttpProtocolChain.java:76)
在com.sun.grizzly。 ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java: 69)
at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java: 309)
在java.lang.Thread.run(Thread.java:619)

警告:StandardWrapperValve [NewWebService]:PWC1382:为Servlet分配异常NewWebService
javax.servlet .ServletException $在org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:271)b
$ b。在org.glassfish.webservices.JAXWSServlet.init(JAXWSServlet.java:99)
。在组织.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1428)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1060)
at org.apache.catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:187)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
在com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
在com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
在org.apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
在org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
在org.apache.catalina.connector .CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http .ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execu TE(DefaultProtocolFilter.java:170)
。在com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
。在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com .sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
在com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
在com.sun.grizzly.ContextTask.run (ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:309)
在java.lang.Thread.run(Thread.java:619)
导致:java.lang.IllegalStateException:WEB9031:WebappClassLoader无法加载资源[META-INF /services/org.apache.xerces.xni.parser.XMLParse rConfiguration],因为它还没有启动,或者已经停止
在org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2085)
在org.glassfish.web.loader .WebappClassLoader.findResource(WebappClassLoader.java:1018)
位于org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1255)
位于org.apache.xerces.parsers.SecuritySupport $ 6。运行(未知源)
在java.security.AccessController.doPrivileged(本地方法)
在org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(未知源)
在org.apache。 xerces.parsers.ObjectFactory.findJarServiceProvider(未知源代码)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source )
at org.apache.xerces.parsers.SAXParser。< init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser。< init>(Unknown Source)
在org.apach e.xerces.jaxp.SAXParserImpl $ JAXPSAXParser。< init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl。< init>(Unknown Source)
at org.apache。 xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader.readCatalog(SAXCatalogReader.java:238)
at com.sun .org.apache.xml.internal.resolver.Catalog.parseCatalog(Catalog.java:680)
at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:270)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560)
at org.glassfish.webservices.JAXWSServlet.registerEndpoint(JAXWSServlet.java:405)
at org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:264)
... 26 more

我有什么想法可以解决这个问题?请注意,它只发生在创建新的Web服务客户端/参考后。即使有人可以建议我应该创建哪个项目(例如,它是NetBeans错误?Glassfish错误?JAX-WS错误?等等),那就太好了。


<我终于找到了一个解决方案:



http://forums.java.net/jive/thread.jspa?threadID=59445



我需要做的是从xercesImpl.jar文件中删除这些文件:

  META-INF / services / javax.xml.parsers.DocumentBuilderFactory 
META-INF / services / javax.xml.parsers.SAXParserFactory

如果修改后的JAR文件包含在我的项目中,它不会再引起任何问题。



如果有人有更好的解决方案,请让我知道。


I am unable to create a Web Service Client in my NetBeans Web Application when xercesImpl.jar is included as a library.

Using NetBeans 6.9 and GlassFish 3.0.1:

1.) Create new Web Application
2.) Create a new Web Service
3.) Add a new operation to the created web service (just let it return null - the implementation isn't important)
4.) Deploy web service to GlassFish (works fine)
5.) Add xercesImpl.jar (I'm using version 2.9.1) as a library to the web service (I need xerces for a third-party library that I'm using)
6.) Stop Glassfish.
7.) Clean and Build the project.
8.) Run the project. Test that the Web Service still works (it does).
9.) Create a new Web Service Client. Point it at a WSDL (I'm using http://www.webservicex.com/CurrencyConvertor.asmx?wsdl just as a test).
10.) Stop Glassfish.
11.) Clean and Build the project.

Error message is shown:

C:\NetBeansProjects\WSTest\nbproject\jaxws-build.xml:43: Error starting wsimport: BUILD FAILED (total time: 1 second)

Line 43 is:

<wsimport sourcedestdir="${build.generated.dir}/jax-wsCache/CurrencyConvertor" 
destdir="${build.generated.dir}/jax-wsCache/CurrencyConvertor" wsdl=
"${basedir}/${conf-dir}xml-resources/web-service-references/
CurrencyConvertor/wsdl/www.webservicex.com/CurrencyConvertor.asmx.wsdl"
catalog="catalog.xml" extension="true" verbose="true"
wsdlLocation="http://www.webservicex.com/CurrencyConvertor.asmx?wsdl" 
xnocompile="true" xendorsed="true">

12.) Restart NetBeans.
13.) Clean and Build the project. (The build now works)
14.) Run the project. GlassFish starts up fine except for this one-line error message:

SEVERE: Error in resolving the catalog

15.) Loading the Web Service Tester page produces the following exception in the GlassFish log:

WARNING: Servlet web service endpoint 'NewWebService' failure
java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration], because it has not yet been started, or was already stopped
at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2085)
at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1018)
at org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1255)
at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader.readCatalog(SAXCatalogReader.java:238)
at com.sun.org.apache.xml.internal.resolver.Catalog.parseCatalog(Catalog.java:680)
at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:270)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560)
at org.glassfish.webservices.JAXWSServlet.registerEndpoint(JAXWSServlet.java:405)
at org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:264)
at org.glassfish.webservices.JAXWSServlet.init(JAXWSServlet.java:99)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1428)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1060)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:187)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)

WARNING: StandardWrapperValve[NewWebService]: PWC1382: Allocate exception for servlet NewWebService
javax.servlet.ServletException
at org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:271)
at org.glassfish.webservices.JAXWSServlet.init(JAXWSServlet.java:99)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1428)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1060)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:187)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration], because it has not yet been started, or was already stopped
at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2085)
at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1018)
at org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1255)
at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader.readCatalog(SAXCatalogReader.java:238)
at com.sun.org.apache.xml.internal.resolver.Catalog.parseCatalog(Catalog.java:680)
at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:270)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560)
at org.glassfish.webservices.JAXWSServlet.registerEndpoint(JAXWSServlet.java:405)
at org.glassfish.webservices.JAXWSServlet.doInit(JAXWSServlet.java:264)
... 26 more

Any ideas on what I can do to fix this? Note that it only happens after I create a new Web Service Client/Reference. Even if someone could suggest which project I should be creating a bug against (i.e. is it a NetBeans fault? A Glassfish fault? A JAX-WS fault? etc.), that would be good.

解决方案

Well I've finally found a solution:

http://forums.java.net/jive/thread.jspa?threadID=59445

What I needed to do was to remove these files from the xercesImpl.jar file:

META-INF/services/javax.xml.parsers.DocumentBuilderFactory
META-INF/services/javax.xml.parsers.SAXParserFactory

When the modified JAR file is included in my project it no longer causes any issues.

If anyone has a neater solution, please let me know.

这篇关于当xercesImpl.jar位于classpath上时,NetBeans Web Service客户端出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆