First, development package
Existing documentation:
"Simple AXIS"
Exclusive development package:
Server development kit Using Apache Axis client development kits Using Systinet WASP 5.0
The server and client uses different development packages:
SYSTINET's server development package must be used with Systinet Server, and we have chosen JBoss, so the server selects other development kits SYSTINET's server development package and client development pack default occupation of the same SOCKET port, there is no In the same application, use the server and client that must be SYSTINET, so the server selects other development kits, and further learning for Systinet may solve this problem AXIS client development package uses "enum" to do ordinary identity. , Cannot be compiled in JDK5, and we must use JDK5, so the client selects other development packages
The server and client uses different development packages:
It is unable to provide support for complex data types such as ArrayList, Hashmap, etc., because different development packages have different unnecessary class libraries and learning costs for non-standard WebService types, SYSTINET WASP 5.0 is really a very large Things, it is currently not efficient to use it, discovering the current use of usage in the test.
solution:
The client also uses AXIS, and the generated Stub is compiled as a JAR package under 1.4, and then it is very limited to the SYSTINET in 1.5. The above may be incorrect, and the above problems will be solved after further study. Or SYSTINET's respective upgrades
Second, WebService in Nucleus
achieve
It can be seen from "Simple Axis" that publishing WebService requires some configuration descriptors, currently in M2 / Engine / ServiceInterface / Nucleus / Web-INF / NuCleus / WEB-INF /
Increase or modify WebService, just modify server-config.wsdd; there is usually several ways to modify:
If you are more familiar with AXIS, you can manually modify if there is a suitable Eclipse plugin, you can use the Plug-in wizard to modify if there is JBuilder, you can use JBuilder wizard modification
It is currently using JBuilder handmade modification:
You can create some unrelated works, familiar with JBuilder's support for Axis and WebService, using JBuilder to publish new WebService from Nuclefor, to generate new server-config.wsdd from new server-config.wsdd WEBSERVICE corresponding description, paste into M2 / Engine / ServiceInterface / Nucleus / Web-INF / Server-Config.wsdd
design
In order not to rely on WebService, Nucleus defines the interface of the underlying service in the form of an interface:
Package Nucleus.bizCommon.Servicegateway:
Public Interface AgentService
Public Interface EngineManager
Public Interface MonitorWebService
Public Interface OrganizationWebService
Public Interface PDMwebService
Public Interface ReportWebService
Public Interface TasklistWebService
For distributed and embedded between the overall switching convenient, Nucleus defines the Service Gateway Interface: package nucleus.servicegateway: public interface WebServiceProvider {PDMWebService getPDMWebService (); OrganizationWebService getOrganizationWebService (); EngineManager getEngineWebService (); MonitorWebService getMonitorWebService () Tasklistwebservice gettasklistwebservice (); ReportWebService getReportWebService (); agentservice getagentservice ();}
At the same time, a distributed service gateway is provided separately.
Public Final Class Nucleus.ServiceGateway.externalService Implements WebServiceProvider
And embedded service gateway
Public Final Class Nucleus.ServiceGateway.InternalService Implements WebServiceProvider
Then switchable by configuration
There is an inconvenient expansion here. There is no corresponding intention of the interface naming (such as "web" in the interface name), which seems to be included in the message system.
Bale
Currently using CruiseControl and Ant, the script file is located in M2 / Engine / *. XML
Third, summary
In summary, the new WebService step is:
Definition of a service interface: public interface nucleus.bizcommon.servicegateway.NewService; implement this interface: public class NewService implements nucleus.bizcommon.servicegateway.NewService; a method of increasing the WebServiceProvider: NewService getNewService (); ExternalService and to achieve this in the InternalService Methods use JBuilder to release newService to modify server-config.wsdd package