spring-boot集成activiti的model遇到問題匯總


按照網上的七拼八湊整合網頁版的部署將遇到的問題歸置如下:

本人的springboot版本是:1.5.13.RELEASE

工作流相關:

 <!--工作流-->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        
        <!-- Activiti 流程圖 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-diagram-rest</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- Activiti 在線設計 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-modeler</artifactId>
            <version>${activiti.version}</version>
        </dependency>

1、啟動之后訪問跳出輸入用戶名,密碼,原因:activiti集成的安全校驗

解決:在啟動類加入:

@EnableAutoConfiguration(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class,
		org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class })

2、在線編輯器modeler.html訪問的時候是空白,大部分是因為這個頁面所需要的元素沒有取到,檢查相關的路徑,

editor-app/app-cfg.js這個文件修改如下(都是按照實際項目配置來的,這個service可以按照自己實際的來,后面的三個類保持一致即可)
ACTIVITI.CONFIG = { //'contextRoot' : '/activiti-explorer/service', 'contextRoot' : '/service' }; 查看是否改成系統一致的路徑,
遷移過來的三個類:StencilsetRestResource.javaModelEditorJsonRestResource.javaModelSaveRestResource.java統一在類上加@RequestMapping(value = "/service")

修改StencilsetRestResource.java(如果在拷貝stencilset.json時沒有放在resources目錄下)
InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");把它改為相應的位置,

 3、modeler.html?modelId=xxx里面的符號出現了方框(svg矢量圖形都變成了不可辨識的字符),原因就是都配置了pom的資源路徑下,pom會掃面資源路徑,把變量替換成相應的值,二進制的文件就會收到破壞,把先關文件不掃描即可,如下配置

<!--
					此plugin可以用利用此plugin,把源代碼中的xml文件,打包到相應位置,這里主要是為了打包Mybatis的mapper.xml文件,如下只
					是截取了與 maven-resources-plugin 相關pom文件配置,其它部分按照自己的工程目錄來。
					-->
				<plugin>
				    <artifactId>maven-resources-plugin</artifactId>
				    <executions>
				        <execution>
				            <id>copy-xmls</id>
				            <phase>process-sources</phase>
				            <goals>
				                <goal>copy-resources</goal>
				            </goals>
				            <configuration>
				                <outputDirectory>target/classes</outputDirectory>
				                <resources>
						            <resource>
						                <directory>src/main/resources</directory>
						                <filtering>true</filtering>
						                <excludes>
						                    <exclude>static/fonts/**</exclude>
						                    <exclude>static/plugins/processes/editor-app/**</exclude>
						                </excludes>
						            </resource>
						            <resource>
						                <directory>src/main/resources</directory>
						                <filtering>false</filtering>
						                <includes>
						                    <include>static/fonts/**</include>
						                    <include>static/plugins/processes/editor-app/**</include>
						                </includes>
						            </resource>
						        </resources>
				            </configuration>
				        </execution>
				    </executions>
				</plugin>

4、model.html保存頁面報錯(400錯誤Required request body is missing),修改ModelSaveRestResource方法的參數,可以整個替換掉這個方法即可

@RequestMapping(value = "/model/{modelId}/save", method = RequestMethod.PUT)
	@ResponseStatus(value = HttpStatus.OK)
	public void saveModel(@PathVariable String modelId, String name, String description, String json_xml,
			String svg_xml) {
		try {
			Model model = repositoryService.getModel(modelId);

			ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());

			modelJson.put(MODEL_NAME, name);
			modelJson.put(MODEL_DESCRIPTION, description);
			model.setMetaInfo(modelJson.toString());
			model.setName(name);

			repositoryService.saveModel(model);

			repositoryService.addModelEditorSource(model.getId(), json_xml.getBytes("utf-8"));

			InputStream svgStream = new ByteArrayInputStream(svg_xml.getBytes("utf-8"));
			TranscoderInput input = new TranscoderInput(svgStream);

			PNGTranscoder transcoder = new PNGTranscoder();
			// Setup output
			ByteArrayOutputStream outStream = new ByteArrayOutputStream();
			TranscoderOutput output = new TranscoderOutput(outStream);

			// Do the transformation
			transcoder.transcode(input, output);
			final byte[] result = outStream.toByteArray();
			repositoryService.addModelEditorSourceExtra(model.getId(), result);
			outStream.close();

		} catch (Exception e) {
			LOGGER.error("Error saving model", e);
			throw new ActivitiException("Error saving model", e);
		}
	}

 待續 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM